home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.5)
-
- from base.g import *
- from base import utils
- from prnt import cups
- from qt import *
- from scrollview import ScrollView
- import os.path as os
- import os
- import time
-
- class CancelJobPushButton(QPushButton):
-
- def __init__(self, parent, name, job_id):
- QPushButton.__init__(self, parent, name)
- self.job_id = job_id
-
-
-
- class ScrollPrintJobView(ScrollView):
-
- def __init__(self, parent = None, name = None, fl = 0):
- ScrollView.__init__(self, parent, name, fl)
- self.JOB_STATES = {
- cups.IPP_JOB_PENDING: self._ScrollPrintJobView__tr('Pending'),
- cups.IPP_JOB_HELD: self._ScrollPrintJobView__tr('On hold'),
- cups.IPP_JOB_PROCESSING: self._ScrollPrintJobView__tr('Printing'),
- cups.IPP_JOB_STOPPED: self._ScrollPrintJobView__tr('Stopped'),
- cups.IPP_JOB_CANCELLED: self._ScrollPrintJobView__tr('Canceled'),
- cups.IPP_JOB_ABORTED: self._ScrollPrintJobView__tr('Aborted'),
- cups.IPP_JOB_COMPLETED: self._ScrollPrintJobView__tr('Completed') }
- self.warning_pix = QPixmap(os.path.join(prop.image_dir, 'warning.png'))
- self.error_pix = QPixmap(os.path.join(prop.image_dir, 'error.png'))
- self.ok_pix = QPixmap(os.path.join(prop.image_dir, 'ok.png'))
- self.busy_pix = QPixmap(os.path.join(prop.image_dir, 'busy.png'))
- self.idle_pix = QPixmap(os.path.join(prop.image_dir, 'idle.png'))
- self.print_pix = QPixmap(os.path.join(prop.image_dir, 'print_icon.png'))
- self.JOB_STATE_ICONS = {
- cups.IPP_JOB_PENDING: self.busy_pix,
- cups.IPP_JOB_HELD: self.busy_pix,
- cups.IPP_JOB_PROCESSING: self.print_pix,
- cups.IPP_JOB_STOPPED: self.warning_pix,
- cups.IPP_JOB_CANCELLED: self.warning_pix,
- cups.IPP_JOB_ABORTED: self.error_pix,
- cups.IPP_JOB_COMPLETED: self.ok_pix }
-
-
- def fillControls(self):
- ScrollView.fillControls(self)
- self.addGroupHeading('print_control', self._ScrollPrintJobView__tr('Print Control'))
- self.addPrintController()
- self.updatePrintController()
- jobs = cups.getJobs()
- num_jobs = 0
- for j in jobs:
- if j.dest == self.cur_printer:
- num_jobs += 1
- continue
-
- if num_jobs > 1:
- self.addGroupHeading('job_control', self._ScrollPrintJobView__tr('Job Control'))
- self.addCancelAllJobsController()
-
- if num_jobs:
- if num_jobs == 1:
- self.addGroupHeading('jobs', self._ScrollPrintJobView__tr('1 Active Print Job'))
- elif num_jobs > 1:
- self.addGroupHeading('jobs', self._ScrollPrintJobView__tr('%1 Active Print Jobs').arg(num_jobs))
-
- for j in jobs:
- if j.dest == self.cur_printer:
- self.addItem(j.dest, j.id, j.state, j.user, j.title)
- continue
-
-
-
-
- def addPrintController(self):
- widget = self.getWidget()
- layout1 = QGridLayout(widget, 1, 1, 5, 10, 'layout1')
- layout2 = QVBoxLayout(None, 0, 6, 'layout2')
- self.stopstartTextLabel = QLabel(widget, 'stopstartTextLabel')
- layout2.addWidget(self.stopstartTextLabel)
- self.acceptrejectTextLabel = QLabel(widget, 'acceptrejectTextLabel')
- layout2.addWidget(self.acceptrejectTextLabel)
- self.defaultTextLabel = QLabel(widget, 'defaultTextLabel')
- layout2.addWidget(self.defaultTextLabel)
- layout1.addMultiCellLayout(layout2, 2, 3, 0, 0)
- layout3 = QVBoxLayout(None, 0, 6, 'layout3')
- self.stopstartPushButton = QPushButton(widget, 'stopstartPushButton')
- layout3.addWidget(self.stopstartPushButton)
- self.rejectacceptPushButton = QPushButton(widget, 'rejectacceptPushButton')
- layout3.addWidget(self.rejectacceptPushButton)
- self.defaultPushButton = QPushButton(widget, 'defaultPushButton')
- layout3.addWidget(self.defaultPushButton)
- layout1.addMultiCellLayout(layout3, 2, 3, 2, 2)
- spacer1 = QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
- layout1.addItem(spacer1, 3, 1)
- spacer2 = QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
- layout1.addItem(spacer2, 2, 1)
- self.connect(self.stopstartPushButton, SIGNAL('clicked()'), self.stopstartPushButton_clicked)
- self.connect(self.rejectacceptPushButton, SIGNAL('clicked()'), self.rejectacceptPushButton_clicked)
- self.connect(self.defaultPushButton, SIGNAL('clicked()'), self.defaultPushButton_clicked)
- self.addWidget(widget, 'print_control')
-
-
- def updatePrintController(self):
- self.defaultPushButton.setText(self._ScrollPrintJobView__tr('Set as Default'))
- default_printer = cups.getDefaultPrinter()
- if default_printer == self.cur_printer:
- s = self._ScrollPrintJobView__tr('SET AS DEFAULT')
- self.defaultPushButton.setEnabled(False)
- else:
- s = self._ScrollPrintJobView__tr('NOT SET AS DEFAULT')
- self.defaultPushButton.setEnabled(True)
- self.defaultTextLabel.setText(self._ScrollPrintJobView__tr('The printer is currently: %1').arg(s))
- cups_printers = cups.getPrinters()
- for p in cups_printers:
- if p.name == self.cur_printer:
- self.printer_state = p.state
- self.printer_accepting = p.accepting
- break
- continue
-
- if self.printer_state == cups.IPP_PRINTER_STATE_IDLE:
- s = self._ScrollPrintJobView__tr('IDLE')
- self.stopstartPushButton.setText(self._ScrollPrintJobView__tr('Stop Printer'))
- elif self.printer_state == cups.IPP_PRINTER_STATE_PROCESSING:
- s = self._ScrollPrintJobView__tr('PROCESSING')
- self.stopstartPushButton.setText(self._ScrollPrintJobView__tr('Stop Printer'))
- else:
- s = self._ScrollPrintJobView__tr('STOPPED')
- self.stopstartPushButton.setText(self._ScrollPrintJobView__tr('Start Printer'))
- self.stopstartTextLabel.setText(self._ScrollPrintJobView__tr('The printer is currently: %1').arg(s))
- if self.printer_accepting:
- s = self._ScrollPrintJobView__tr('ACCEPTING JOBS')
- self.rejectacceptPushButton.setText(self._ScrollPrintJobView__tr('Reject Jobs'))
- else:
- s = self._ScrollPrintJobView__tr('REJECTING JOBS')
- self.rejectacceptPushButton.setText(self._ScrollPrintJobView__tr('Accept Jobs'))
- self.acceptrejectTextLabel.setText(self._ScrollPrintJobView__tr('The printer is currently: %1').arg(s))
-
-
- def stopstartPushButton_clicked(self):
- QApplication.setOverrideCursor(QApplication.waitCursor)
-
- try:
- if self.printer_state in (cups.IPP_PRINTER_STATE_IDLE, cups.IPP_PRINTER_STATE_PROCESSING):
- cups.stop(self.cur_printer)
- else:
- cups.start(self.cur_printer)
- self.updatePrintController()
- finally:
- QApplication.restoreOverrideCursor()
-
-
-
- def rejectacceptPushButton_clicked(self):
- QApplication.setOverrideCursor(QApplication.waitCursor)
-
- try:
- if self.printer_accepting:
- cups.reject(self.cur_printer)
- else:
- cups.accept(self.cur_printer)
- self.updatePrintController()
- finally:
- QApplication.restoreOverrideCursor()
-
-
-
- def defaultPushButton_clicked(self):
- QApplication.setOverrideCursor(QApplication.waitCursor)
-
- try:
- result = cups.setDefaultPrinter(self.cur_printer)
- if not result:
- log.error('Set default printer failed.')
- else:
- self.updatePrintController()
- finally:
- QApplication.restoreOverrideCursor()
-
-
-
- def addCancelAllJobsController(self):
- widget = self.getWidget()
- layout1 = QHBoxLayout(widget, 10, 5, 'layout1')
- textLabel1 = QLabel(widget, 'textLabel1')
- layout1.addWidget(textLabel1)
- spacer1 = QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
- layout1.addItem(spacer1)
- cancelPushButton = QPushButton(widget, 'cancelPushButton')
- layout1.addWidget(cancelPushButton)
- self.addWidget(widget, 'job_control')
- textLabel1.setText(self._ScrollPrintJobView__tr('Cancel all active print jobs'))
- cancelPushButton.setText(self._ScrollPrintJobView__tr('Cancel All Jobs'))
- self.connect(cancelPushButton, SIGNAL('clicked()'), self.cancelAllJobs)
-
-
- def cancelAllJobs(self):
- QApplication.setOverrideCursor(QApplication.waitCursor)
-
- try:
- if not cups.purge(self.cur_printer):
- log.error('Cancel all jobs failed.')
- else:
- self.fillControls()
- finally:
- QApplication.restoreOverrideCursor()
-
-
-
- def addItem(self, dest, job_id, state, user, title):
- widget = self.getWidget()
- layout1 = QGridLayout(widget, 1, 1, 5, 10, 'layout1')
- cancelPushButton = CancelJobPushButton(widget, 'cancelPushButton', job_id)
- layout1.addWidget(cancelPushButton, 1, 4)
- spacer1 = QSpacerItem(30, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
- layout1.addItem(spacer1, 1, 3)
- icon = QLabel(widget, 'icon')
- icon.setSizePolicy(QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed, 0, 0, icon.sizePolicy().hasHeightForWidth()))
- icon.setMinimumSize(QSize(32, 32))
- icon.setMaximumSize(QSize(32, 32))
- icon.setScaledContents(1)
- layout1.addMultiCellWidget(icon, 1, 2, 1, 1)
- spacer2 = QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
- layout1.addItem(spacer2, 0, 3)
- titleText = QLabel(widget, 'titleText')
- titleText.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred, 0, 0, titleText.sizePolicy().hasHeightForWidth()))
- layout1.addMultiCellWidget(titleText, 0, 0, 1, 2)
- stateText = QLabel(widget, 'stateText')
- stateText.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred, 0, 0, stateText.sizePolicy().hasHeightForWidth()))
- layout1.addWidget(stateText, 1, 2)
- jobIDText = QLabel(widget, 'jobIDText')
- layout1.addWidget(jobIDText, 0, 4)
- titleText.setText(self._ScrollPrintJobView__tr('<b>%1</b>').arg(title))
- stateText.setText(self.JOB_STATES[state])
- jobIDText.setText(self._ScrollPrintJobView__tr('Job ID: %1').arg(job_id))
- cancelPushButton.setText(self._ScrollPrintJobView__tr('Cancel Job'))
- icon.setPixmap(self.JOB_STATE_ICONS[state])
- self.connect(cancelPushButton, SIGNAL('clicked()'), self.cancelJob)
- self.addWidget(widget, dest + str(job_id))
-
-
- def cancelJob(self):
- sender = self.sender()
- job_id = sender.job_id
- QApplication.setOverrideCursor(QApplication.waitCursor)
-
- try:
- self.cur_device.cancelJob(job_id)
- time.sleep(1)
- finally:
- QApplication.restoreOverrideCursor()
-
- self.fillControls()
-
-
- def __tr(self, s, c = None):
- return qApp.translate('DevMgr4', s, c)
-
-
-