diff --git a/system-config-printer-driver-pre-selection.patch b/system-config-printer-driver-pre-selection.patch index aa3f9b5..67b9e2a 100644 --- a/system-config-printer-driver-pre-selection.patch +++ b/system-config-printer-driver-pre-selection.patch @@ -1,7 +1,15 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-selection system-config-printer-1.1.16/system-config-printer.py ---- system-config-printer-1.1.16/system-config-printer.py.driver-pre-selection 2009-12-23 15:00:02.129814424 +0000 -+++ system-config-printer-1.1.16/system-config-printer.py 2009-12-23 15:00:27.228814932 +0000 -@@ -3968,38 +3968,41 @@ class NewPrinterGUI(GtkGUI): +--- system-config-printer-1.1.16/system-config-printer.py.driver-pre-selection 2010-01-11 14:58:14.392910996 +0000 ++++ system-config-printer-1.1.16/system-config-printer.py 2010-01-11 14:58:23.834909684 +0000 +@@ -3913,6 +3913,7 @@ class NewPrinterGUI(GtkGUI): + self.rbtnChangePPDKeepSettings.set_active(True) + + self.auto_model = "" ++ self.auto_driver = None + ppd = self.mainapp.ppd + #self.mainapp.devid = "MFG:Samsung;MDL:ML-3560;DES:;CMD:GDI;" + devid = self.mainapp.devid +@@ -3968,38 +3969,41 @@ class NewPrinterGUI(GtkGUI): else: self.auto_make = devid_dict["MFG"] self.auto_model = devid_dict["MDL"] @@ -18,23 +26,7 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-select - attr = ppd.findAttr("Manufacturer") - if attr: - mfr = attr.value -+ attr = ppd.findAttr("NickName") -+ if not attr: -+ attr = ppd.findAttr("ModelName") -+ -+ if attr.value: -+ mfgmdl = cupshelpers.ppds.ppdMakeModelSplit (attr.value) -+ (self.auto_make, self.auto_model) = mfgmdl -+ -+ # Search for ppdname with that make-and-model -+ self.loadPPDs () -+ ppds = self.ppds.getInfoFromModel (self.auto_make, -+ self.auto_model) -+ for ppd, info in ppds.iteritems (): -+ if info.get ("ppd-make-and-model") == attr.value: -+ self.auto_driver = ppd -+ break - else: +- else: - mfr = "" - makeandmodel = mfr - attr = ppd.findAttr("ModelName") @@ -47,10 +39,26 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-select - makeandmodel += ' ' + attr.value - else: - makeandmodel = '' -- ++ attr = ppd.findAttr("NickName") ++ if not attr: ++ attr = ppd.findAttr("ModelName") ++ ++ if attr.value: ++ mfgmdl = cupshelpers.ppds.ppdMakeModelSplit (attr.value) ++ (self.auto_make, self.auto_model) = mfgmdl + - (self.auto_make, - self.auto_model) = \ - cupshelpers.ppds.ppdMakeModelSplit (makeandmodel) ++ # Search for ppdname with that make-and-model ++ self.loadPPDs () ++ ppds = self.ppds.getInfoFromModel (self.auto_make, ++ self.auto_model) ++ for ppd, info in ppds.iteritems (): ++ if info.get ("ppd-make-and-model") == attr.value: ++ self.auto_driver = ppd ++ break ++ else: + self.auto_make = None + self.auto_model = None + self.auto_driver = None @@ -62,7 +70,7 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-select try: if self.dialog_mode == "ppd": -@@ -4249,6 +4252,8 @@ class NewPrinterGUI(GtkGUI): +@@ -4249,6 +4253,8 @@ class NewPrinterGUI(GtkGUI): if self.openprinting_query_handle != None: self.openprinting.cancelOperation (self.openprinting_query_handle) self.openprinting_query_handle = None @@ -71,7 +79,7 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-select return True def on_btnNPBack_clicked(self, widget): -@@ -4267,6 +4272,7 @@ class NewPrinterGUI(GtkGUI): +@@ -4267,6 +4273,7 @@ class NewPrinterGUI(GtkGUI): self.busy (self.NewPrinterWindow) if page_nr == 1: # Device (first page) self.auto_make, self.auto_model = None, None @@ -79,7 +87,7 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-select self.device.uri = self.getDeviceURI() if not self.install_hplip_plugin(self.device.uri): self.on_NPCancel(None) -@@ -4434,6 +4440,7 @@ class NewPrinterGUI(GtkGUI): +@@ -4434,6 +4441,7 @@ class NewPrinterGUI(GtkGUI): cupshelpers.ppds.ppdMakeModelSplit (make_model) self.auto_make = make self.auto_model = model @@ -87,7 +95,7 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-select if (status == self.ppds.STATUS_SUCCESS and \ self.dialog_mode != "ppd"): self.exactdrivermatch = True -@@ -6414,7 +6421,17 @@ class NewPrinterGUI(GtkGUI): +@@ -6414,7 +6422,17 @@ class NewPrinterGUI(GtkGUI): ppds = self.ppds.getInfoFromModel(pmake, pmodel) self.NPDrivers = self.ppds.orderPPDNamesByPreference(ppds.keys(), @@ -106,7 +114,7 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-select for i in range (len(self.NPDrivers)): ppd = ppds[self.NPDrivers[i]] driver = ppd["ppd-make-and-model"] -@@ -6426,7 +6443,12 @@ class NewPrinterGUI(GtkGUI): +@@ -6426,7 +6444,12 @@ class NewPrinterGUI(GtkGUI): except KeyError: pass @@ -120,7 +128,7 @@ diff -up system-config-printer-1.1.16/system-config-printer.py.driver-pre-select iter = model.append ((driver + _(" (recommended)"),)) path = model.get_path (iter) self.tvNPDrivers.get_selection().select_path(path) -@@ -6881,6 +6903,7 @@ class NewPrinterGUI(GtkGUI): +@@ -6881,6 +6904,7 @@ class NewPrinterGUI(GtkGUI): checkppd = ppd self.NewPrinterWindow.hide() diff --git a/system-config-printer.spec b/system-config-printer.spec index 318f44d..4f9d834 100644 --- a/system-config-printer.spec +++ b/system-config-printer.spec @@ -7,7 +7,7 @@ Summary: A printer administration tool Name: system-config-printer Version: 1.1.16 -Release: 6%{?dist} +Release: 7%{?dist} License: GPLv2+ URL: http://cyberelk.net/tim/software/system-config-printer/ Group: System Environment/Base