125 lines
5.5 KiB
Diff
125 lines
5.5 KiB
Diff
diff -up system-config-printer-1.1.13/monitor.py.custom-state-reasons system-config-printer-1.1.13/monitor.py
|
|
--- system-config-printer-1.1.13/monitor.py.custom-state-reasons 2009-09-04 10:35:48.000000000 +0100
|
|
+++ system-config-printer-1.1.13/monitor.py 2009-10-29 17:18:46.813021287 +0000
|
|
@@ -62,7 +62,7 @@ def collect_printer_state_reasons (conne
|
|
continue
|
|
if not result.has_key (name):
|
|
result[name] = []
|
|
- result[name].append (StateReason (name, reason))
|
|
+ result[name].append (StateReason (connection, name, reason))
|
|
return result
|
|
|
|
class Watcher:
|
|
@@ -408,7 +408,7 @@ class Monitor:
|
|
break
|
|
if state_reason_is_harmless (reason):
|
|
continue
|
|
- reasons.append (StateReason (name, reason))
|
|
+ reasons.append (StateReason (c, name, reason))
|
|
self.printer_state_reasons[name] = reasons
|
|
|
|
deferred_calls.append ((self.watcher.printer_event,
|
|
diff -up system-config-printer-1.1.13/statereason.py.custom-state-reasons system-config-printer-1.1.13/statereason.py
|
|
--- system-config-printer-1.1.13/statereason.py.custom-state-reasons 2009-09-04 10:35:48.000000000 +0100
|
|
+++ system-config-printer-1.1.13/statereason.py 2009-10-29 17:18:46.814020769 +0000
|
|
@@ -17,6 +17,8 @@
|
|
## along with this program; if not, write to the Free Software
|
|
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
+import cups
|
|
+
|
|
_ = lambda x: x
|
|
def set_gettext_function (fn):
|
|
global _
|
|
@@ -33,11 +35,12 @@ class StateReason:
|
|
ERROR: "dialog-error"
|
|
}
|
|
|
|
- def __init__(self, printer, reason):
|
|
+ def __init__(self, connection, printer, reason):
|
|
self.printer = printer
|
|
self.reason = reason
|
|
self.level = None
|
|
self.canonical_reason = None
|
|
+ self.connection = connection
|
|
|
|
def get_printer (self):
|
|
return self.printer
|
|
@@ -53,6 +56,7 @@ class StateReason:
|
|
self.level = self.WARNING
|
|
else:
|
|
self.level = self.ERROR
|
|
+
|
|
return self.level
|
|
|
|
def get_reason (self):
|
|
@@ -69,6 +73,7 @@ class StateReason:
|
|
return self.canonical_reason
|
|
|
|
def __repr__ (self):
|
|
+ self.get_level()
|
|
if self.level == self.REPORT:
|
|
level = "REPORT"
|
|
elif self.level == self.WARNING:
|
|
@@ -119,8 +124,24 @@ class StateReason:
|
|
title = _("Printer warning")
|
|
elif self.get_level () == self.ERROR:
|
|
title = _("Printer error")
|
|
- text = _("Printer '%s': '%s'.") % (self.get_printer (),
|
|
- self.get_reason ())
|
|
+
|
|
+ try:
|
|
+ f = self.connection.getPPD(self.printer)
|
|
+ ppd = cups.PPD (f)
|
|
+ schemes = ["text", "http", "help", "file"]
|
|
+ localized_reason = ""
|
|
+ for scheme in schemes:
|
|
+ reason = ppd.localizeIPPReason(self.reason, scheme)
|
|
+ if reason != None:
|
|
+ localized_reason = localized_reason + reason + ", "
|
|
+ if localized_reason != "":
|
|
+ reason = localized_reason[:-2]
|
|
+ else:
|
|
+ reason = self.get_reason()
|
|
+ except cups.IPPError:
|
|
+ reason = self.get_reason()
|
|
+
|
|
+ text = _("Printer '%s': '%s'.") % (self.get_printer (), reason)
|
|
return (title, text)
|
|
|
|
def get_tuple (self):
|
|
diff -up system-config-printer-1.1.13/system-config-printer.py.custom-state-reasons system-config-printer-1.1.13/system-config-printer.py
|
|
--- system-config-printer-1.1.13/system-config-printer.py.custom-state-reasons 2009-10-29 16:51:28.567896668 +0000
|
|
+++ system-config-printer-1.1.13/system-config-printer.py 2009-10-29 17:18:46.816896209 +0000
|
|
@@ -1445,7 +1445,8 @@ class GUI(GtkGUI, monitor.Watcher):
|
|
emblem = gtk.STOCK_MEDIA_PAUSE
|
|
continue
|
|
|
|
- r = statereason.StateReason (object.name, reason)
|
|
+ r = statereason.StateReason (object.connection,
|
|
+ object.name, reason)
|
|
if worst_reason == None:
|
|
worst_reason = r
|
|
elif r > worst_reason:
|
|
@@ -2579,7 +2580,7 @@ class GUI(GtkGUI, monitor.Watcher):
|
|
|
|
any = True
|
|
iter = store.append (None)
|
|
- r = statereason.StateReason (printer.name, reason)
|
|
+ r = statereason.StateReason (printer.connection, printer.name, reason)
|
|
if r.get_reason () == "paused":
|
|
icon = gtk.STOCK_MEDIA_PAUSE
|
|
else:
|
|
diff -up system-config-printer-1.1.13/troubleshoot/PrinterStateReasons.py.custom-state-reasons system-config-printer-1.1.13/troubleshoot/PrinterStateReasons.py
|
|
--- system-config-printer-1.1.13/troubleshoot/PrinterStateReasons.py.custom-state-reasons 2009-09-04 10:35:48.000000000 +0100
|
|
+++ system-config-printer-1.1.13/troubleshoot/PrinterStateReasons.py 2009-10-29 17:18:46.817896728 +0000
|
|
@@ -71,7 +71,7 @@ class PrinterStateReasons(Question):
|
|
if reason == "none":
|
|
continue
|
|
|
|
- r = statereason.StateReason (queue, reason)
|
|
+ r = statereason.StateReason (c, queue, reason)
|
|
(title, description) = r.get_description ()
|
|
level = r.get_level ()
|
|
if level == statereason.StateReason.ERROR:
|