- Fixed traceback introduced in recent fix (bug #554376).

This commit is contained in:
Tim Waugh 2010-01-11 15:52:04 +00:00
parent d6b6757a82
commit c29d3917a1
2 changed files with 36 additions and 28 deletions

View File

@ -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 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.driver-pre-selection 2010-01-11 14:58:14.392910996 +0000
+++ system-config-printer-1.1.16/system-config-printer.py 2009-12-23 15:00:27.228814932 +0000 +++ system-config-printer-1.1.16/system-config-printer.py 2010-01-11 14:58:23.834909684 +0000
@@ -3968,38 +3968,41 @@ class NewPrinterGUI(GtkGUI): @@ -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: else:
self.auto_make = devid_dict["MFG"] self.auto_make = devid_dict["MFG"]
self.auto_model = devid_dict["MDL"] 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") - attr = ppd.findAttr("Manufacturer")
- if attr: - if attr:
- mfr = attr.value - mfr = attr.value
+ attr = ppd.findAttr("NickName") - else:
+ 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:
- mfr = "" - mfr = ""
- makeandmodel = mfr - makeandmodel = mfr
- attr = ppd.findAttr("ModelName") - 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 - makeandmodel += ' ' + attr.value
- else: - else:
- makeandmodel = '' - 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_make,
- self.auto_model) = \ - self.auto_model) = \
- cupshelpers.ppds.ppdMakeModelSplit (makeandmodel) - 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_make = None
+ self.auto_model = None + self.auto_model = None
+ self.auto_driver = 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: try:
if self.dialog_mode == "ppd": 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: if self.openprinting_query_handle != None:
self.openprinting.cancelOperation (self.openprinting_query_handle) self.openprinting.cancelOperation (self.openprinting_query_handle)
self.openprinting_query_handle = None 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 return True
def on_btnNPBack_clicked(self, widget): def on_btnNPBack_clicked(self, widget):
@@ -4267,6 +4272,7 @@ class NewPrinterGUI(GtkGUI): @@ -4267,6 +4273,7 @@ class NewPrinterGUI(GtkGUI):
self.busy (self.NewPrinterWindow) self.busy (self.NewPrinterWindow)
if page_nr == 1: # Device (first page) if page_nr == 1: # Device (first page)
self.auto_make, self.auto_model = None, None 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() self.device.uri = self.getDeviceURI()
if not self.install_hplip_plugin(self.device.uri): if not self.install_hplip_plugin(self.device.uri):
self.on_NPCancel(None) self.on_NPCancel(None)
@@ -4434,6 +4440,7 @@ class NewPrinterGUI(GtkGUI): @@ -4434,6 +4441,7 @@ class NewPrinterGUI(GtkGUI):
cupshelpers.ppds.ppdMakeModelSplit (make_model) cupshelpers.ppds.ppdMakeModelSplit (make_model)
self.auto_make = make self.auto_make = make
self.auto_model = model 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 \ if (status == self.ppds.STATUS_SUCCESS and \
self.dialog_mode != "ppd"): self.dialog_mode != "ppd"):
self.exactdrivermatch = True self.exactdrivermatch = True
@@ -6414,7 +6421,17 @@ class NewPrinterGUI(GtkGUI): @@ -6414,7 +6422,17 @@ class NewPrinterGUI(GtkGUI):
ppds = self.ppds.getInfoFromModel(pmake, pmodel) ppds = self.ppds.getInfoFromModel(pmake, pmodel)
self.NPDrivers = self.ppds.orderPPDNamesByPreference(ppds.keys(), 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)): for i in range (len(self.NPDrivers)):
ppd = ppds[self.NPDrivers[i]] ppd = ppds[self.NPDrivers[i]]
driver = ppd["ppd-make-and-model"] driver = ppd["ppd-make-and-model"]
@@ -6426,7 +6443,12 @@ class NewPrinterGUI(GtkGUI): @@ -6426,7 +6444,12 @@ class NewPrinterGUI(GtkGUI):
except KeyError: except KeyError:
pass 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)"),)) iter = model.append ((driver + _(" (recommended)"),))
path = model.get_path (iter) path = model.get_path (iter)
self.tvNPDrivers.get_selection().select_path(path) self.tvNPDrivers.get_selection().select_path(path)
@@ -6881,6 +6903,7 @@ class NewPrinterGUI(GtkGUI): @@ -6881,6 +6904,7 @@ class NewPrinterGUI(GtkGUI):
checkppd = ppd checkppd = ppd
self.NewPrinterWindow.hide() self.NewPrinterWindow.hide()

View File

@ -7,7 +7,7 @@
Summary: A printer administration tool Summary: A printer administration tool
Name: system-config-printer Name: system-config-printer
Version: 1.1.16 Version: 1.1.16
Release: 6%{?dist} Release: 7%{?dist}
License: GPLv2+ License: GPLv2+
URL: http://cyberelk.net/tim/software/system-config-printer/ URL: http://cyberelk.net/tim/software/system-config-printer/
Group: System Environment/Base Group: System Environment/Base