system-config-printer/system-config-printer-custom-state-reasons.patch

125 lines
5.5 KiB
Diff
Raw Normal View History

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: