def __init__(self, parent, param, jd_port, device_uri=None, remove=False): QDialog.__init__(self, parent) self.setupUi(self) self.param = param self.jd_port = jd_port self.device_uri = device_uri self.remove = remove if device_uri: log.info("Using device: %s" % device_uri) self.initUi() if self.remove: QTimer.singleShot(0, self.showRemovePage) else: if self.skip_discovery: QTimer.singleShot(0, self.showDevicesPage) else: QTimer.singleShot(0, self.showDiscoveryPage) cups.setPasswordCallback(showPasswordUI)
dlg.show() try: log.debug("Starting GUI Event Loop...") app.exec_() except KeyboardInterrupt: clean_exit(0) else: # INTERACTIVE_MODE try: try: from base import password except ImportError: log.warn("Failed to import Password Object") else: cups.setPasswordCallback(password.showPasswordPrompt) #Removing Queue if remove: tui.header("REMOVING PRINT/FAX QUEUE") sts, printer_name, device_uri = mod.getPrinterName(selected_device_name,None,['hp','hpfax']) selected_device_name = printer_name log.info (log.bold("Removing '%s : %s' Queue"%(printer_name, device_uri))) status, status_str = cups.cups_operation(cups.delPrinter, INTERACTIVE_MODE, '', None, selected_device_name) if cups.IPP_OK == status: log.info("Successfully deleted %s Print/Fax queue"%selected_device_name) utils.sendEvent(EVENT_CUPS_QUEUES_REMOVED,device_uri, printer_name) clean_exit(0) else:
def main_function(passwordObj=None, mode=GUI_MODE, ui_toolkit=UI_TOOLKIT_QT4, quiet_mode=False, DEVICE_URI=None): global Error_Found try: from . import device, pml # This can fail due to hpmudext not being present except ImportError: log.error("Device library is not avail.") sys.exit(1) if mode == INTERACTIVE_MODE: try: from . import password except ImportError: log.warn("Failed to import password object") else: cups.setPasswordCallback(password.showPasswordPrompt) mapofDevices, status = parseQueues(mode) if status: if list(mapofDevices.items()) == 0: log.debug("No queues found.") for key, val in list(mapofDevices.items()): if len(val) > 1: if not quiet_mode: Error_Found = True log.warn( "%d queues of same device %s is configured.\nRemove unwanted queues." % (len(val), val[0].PrinterName)) for que in val: reconfigure_Queue(que, mode) else: log.debug("") log.debug("Single print queue is configured for '%s'. " % val[0].PrinterName) reconfigure_Queue(val[0], mode) SI_sts, error_str = smart_install.disable(mode, '', None, None, passwordObj) if SI_sts != ERROR_NO_SI_DEVICE: Error_Found = True if Error_Found is False: if not quiet_mode: if len(mapofDevices) == 0: log.warn("No Queue(s) configured.") else: log.info("Queue(s) configured correctly using HPLIP.") else: log.warn("Could not complete Queue(s) configuration check") cups.releaseCupsInstance() elif mode == GUI_MODE: # Only Qt4 is supported. if ui_toolkit == 'qt3': log.error( "This is not supported in Qt3, requires GUI support (try running with --qt4). Also, try using interactive (-i) mode." ) sys.exit(1) QApplication, ui_package = utils.import_dialog(ui_toolkit) ui = import_module(ui_package + ".queuesconf") setupdialog = import_module(ui_package + ".setupdialog") app = QApplication(sys.argv) dialog = ui.QueuesDiagnose(None, "", "", QUEUES_MSG_SENDING, passwordObj) cups.setPasswordCallback(setupdialog.showPasswordUI) mapofDevices, status = parseQueues(mode) if status: if list(mapofDevices.items()) == 0: log.debug("No queues found.") for key, val in list(mapofDevices.items()): if len(val) > 1: log.warn( '%d queues of same device %s is configured. Remove unwanted queues.' % (len(val), val[0].PrinterName)) if not quiet_mode: Error_Found = True dialog.showMessage( "%d queues of same device %s is configured.\nRemove unwanted queues." % (len(val), val[0].PrinterName)) for que in val: reconfigure_Queue(que, mode, dialog, app) else: log.debug("") log.debug("Single print queue is configured for '%s'. " % val[0].PrinterName) reconfigure_Queue(val[0], mode, dialog, app) SI_sts, error_str = smart_install.disable(mode, ui_toolkit, dialog, app, passwordObj) if SI_sts != ERROR_NO_SI_DEVICE: Error_Found = True if Error_Found is False: if not quiet_mode: if len(mapofDevices) == 0: msg = "No Queue(s) configured." else: msg = "Queue(s) configured correctly using HPLIP." dialog.showSuccessMessage(msg) else: log.warn("Could not complete Queue(s) configuration check") cups.releaseCupsInstance()
def main_function(passwordObj = None, mode = GUI_MODE, ui_toolkit= UI_TOOLKIT_QT4, quiet_mode = False, DEVICE_URI=None): global Error_Found try: from base import device, pml # This can fail due to hpmudext not being present except ImportError: log.error("Device library is not avail.") sys.exit(1) if mode == INTERACTIVE_MODE: try: from base import password except ImportError: log.warn("Failed to import password object") else: cups.setPasswordCallback(password.showPasswordPrompt) mapofDevices = parseQueues(mode) if mapofDevices.items() == 0: log.debug("No queues found.") for key,val in mapofDevices.items(): if len(val) >1: if not quiet_mode: Error_Found = True log.warn("%d queues of same device %s is configured.\nRemove unwanted queues."%(len(val),val[0].PrinterName)) for que in val: reconfigure_Queue(que, mode) else: log.debug("") log.debug("Single print queue is configured for '%s'. " %val[0].PrinterName) reconfigure_Queue(val[0], mode) SI_sts, error_str = smart_install.disable(mode, '', None, None, passwordObj) if SI_sts != ERROR_NO_SI_DEVICE: Error_Found = True if Error_Found is False: if not quiet_mode: if len(mapofDevices) == 0: log.warn("No Queue(s) configured.") else: log.info("Queue(s) configured correctly using HPLIP.") cups.releaseCupsInstance() elif mode == GUI_MODE: # Only Qt4 is supported. if ui_toolkit == 'qt3': log.error("This is not supported in Qt3, requires GUI support (try running with --qt4). Also, try using interactive (-i) mode.") sys.exit(1) try: from PyQt4.QtGui import QApplication, QMessageBox from ui4.queuesconf import QueuesDiagnose from ui4 import setupdialog except ImportError: log.error("Unable to load Qt4 support. Is it installed?") sys.exit(1) app = QApplication(sys.argv) dialog = QueuesDiagnose(None, "","",QUEUES_MSG_SENDING,passwordObj) cups.setPasswordCallback(setupdialog.showPasswordUI) mapofDevices = parseQueues(mode) if mapofDevices.items() == 0: log.debug("No queues found.") for key,val in mapofDevices.items(): if len(val) >1: log.warn('%d queues of same device %s is configured. Remove unwanted queues.' %(len(val),val[0].PrinterName)) if not quiet_mode: Error_Found = True dialog.showMessage("%d queues of same device %s is configured.\nRemove unwanted queues."%(len(val),val[0].PrinterName)) for que in val: reconfigure_Queue(que, mode, dialog,app) else: log.debug("") log.debug("Single print queue is configured for '%s'. " %val[0].PrinterName) reconfigure_Queue(val[0], mode, dialog, app) SI_sts, error_str = smart_install.disable(mode, ui_toolkit, dialog, app, passwordObj) if SI_sts != ERROR_NO_SI_DEVICE: Error_Found = True if Error_Found is False: if not quiet_mode: if len(mapofDevices) == 0: msg= "No Queue(s) configured." else: msg= "Queue(s) configured correctly using HPLIP." dialog.showSuccessMessage(msg) cups.releaseCupsInstance()
def __init__(self, bus, param, jd_port=1, parent=None, name=None, modal=0, fl=0): SetupForm_base.__init__(self, parent, name, modal, fl) self.start_page = self.ConnectionPage self.first_page = True if bus is None: self.bus = 'usb' else: self.bus = bus[0] self.start_page = self.ProbedDevicesPage if not prop.par_build: self.parRadioButton.setEnabled(False) if not prop.net_build: self.netRadioButton.setEnabled(False) if not prop.par_build and not prop.net_build: self.bus = 'usb' self.start_page = self.ProbedDevicesPage self.param = param self.jd_port = jd_port if self.param: # Validate param... device_uri, sane_uri, fax_uri = device.makeURI(self.param, self.jd_port) if device_uri: self.device_uri = device_uri self.start_page = self.PPDPage else: self.FailureUI(self.__tr("<b>Device not found.</b> <p>Please make sure your printer is properly connected and powered-on.")) self.setIcon(load_pixmap('hp_logo', '128x128')) self.connectionTypeButtonGroup.setButton(0) self.device_uri = '' self.mq = {} self.prev_page = None self.probe_pat = re.compile(r'(.*?)\s"(.*?)"\s"(.*?)"\s"(.*?)"', re.IGNORECASE) self.printer_name = '' self.ppd_list = [] self.location = '' self.desc = '' self.filter = [] self.search = '' self.ttl = 4 self.timeout = 5 self.printer_name_ok = True self.fax_name_ok = True self.fax_number = '' self.fax_name = '' self.printer_fax_names_same = False self.fax_name_company = '' self.fax_location = '' self.fax_desc = '' self.print_test_page = True self.printerNameLineEdit.setValidator(PrinterNameValidator(self.printerNameLineEdit)) self.faxNameLineEdit.setValidator(PrinterNameValidator(self.faxNameLineEdit)) self.faxNumberLineEdit.setValidator(PhoneNumValidator(self.faxNumberLineEdit)) self.setTitleFont(QFont("Helvetica", 16)) self.setBackEnabled(self.FinishedPage, False) self.bg = self.printerNameLineEdit.paletteBackgroundColor() self.setHelpEnabled(self.ConnectionPage, False) self.setHelpEnabled(self.ProbedDevicesPage, False) self.setHelpEnabled(self.PPDPage, False) self.setHelpEnabled(self.PrinterNamePage, False) self.setHelpEnabled(self.FinishedPage, False) self.faxNameLineEdit.setMaxLength(50) self.printerNameLineEdit.setMaxLength(50) QToolTip.add(self.searchFiltersPushButton2, self.__tr('Current: Filter: [%2] Search: "%3" TTL: %4 Timeout: %5s').arg(','.join(self.filter)).arg(self.search or '').arg(self.ttl).arg(self.timeout)) cups.setPasswordCallback(showPasswordUI)
app = QApplication(sys.argv) log.debug( "Sys.argv=%s printer_name=%s param=%s jd_port=%s device_uri=%s remove=%s" % (sys.argv, printer_name, param, jd_port, device_uri, remove)) dlg = SetupDialog(None, param, jd_port, device_uri, remove) dlg.show() try: log.debug("Starting GUI loop...") app.exec_() except KeyboardInterrupt: sys.exit(0) else: # INTERACTIVE_MODE try: cups.setPasswordCallback(showPasswordUI) if remove: log.error("-r/--rm/--remove not supported in -i mode.") sys.exit(1) if not auto: log.info( "(Note: Defaults for each question are maked with a '*'. Press <enter> to accept the default.)" ) log.info("") # ******************************* MAKEURI if param: device_uri, sane_uri, fax_uri = device.makeURI(param, jd_port)
app = QApplication(sys.argv) log.debug("Sys.argv=%s printer_name=%s param=%s jd_port=%s device_uri=%s remove=%s" % (sys.argv, printer_name, param, jd_port, device_uri, remove)) dlg = SetupDialog(None, param, jd_port, device_uri, remove) dlg.show() try: log.debug("Starting GUI loop...") app.exec_() except KeyboardInterrupt: sys.exit(0) else: # INTERACTIVE_MODE try: cups.setPasswordCallback(showPasswordUI) if remove: log.error("-r/--rm/--remove not supported in -i mode.") sys.exit(1) if not auto: log.info("(Note: Defaults for each question are maked with a '*'. Press <enter> to accept the default.)") log.info("") # ******************************* MAKEURI if param: device_uri, sane_uri, fax_uri = device.makeURI(param, jd_port) # ******************************* CONNECTION TYPE CHOOSER if not device_uri and bus is None: