Blob Blame History Raw
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: