[X2Go-Commits] pyhoca-gui.git - build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d (branch) updated: 0.1.0.6-6-gce46482

X2Go dev team git-admin at x2go.org
Tue Aug 27 13:21:44 CEST 2013


The branch, build-59a18b6e3b5d3f1dd8f07f26433d37fe5984a57d has been updated
       via  ce46482629e575dc947cd57c7a1a76f88e80977b (commit)
      from  42f28cf1185fdb580970eb4f9b5e7e19412356b9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 debian/changelog              |    1 +
 pyhoca/wxgui/printingprefs.py |   62 ++++++++++++++++++++++++++++-------------
 2 files changed, 43 insertions(+), 20 deletions(-)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 2377456..7496342 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ pyhoca-gui (0.1.0.7-0~x2go1) UNRELEASED; urgency=low
   * New upstream version (0.1.0.7)
     - minor i18n fixes (de)
     - Delaying taskbar icon closure as much as possible (closes upstream issue #79).
+    - Check if print system (CUPS/WinSpool) is available or not (close upstream issue #74)
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Wed, 06 Jul 2011 22:17:10 +0200
 
diff --git a/pyhoca/wxgui/printingprefs.py b/pyhoca/wxgui/printingprefs.py
index 2f079c6..ff1bb64 100644
--- a/pyhoca/wxgui/printingprefs.py
+++ b/pyhoca/wxgui/printingprefs.py
@@ -73,21 +73,28 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
         self._availablePrinters = {}
         if _X2GOCLIENT_OS != "Windows":
             # initialize CUPS config API and retrieve a list of local print queues
-            cups.setUser(_CURRENT_LOCAL_USER)
-            cups_connection = cups.Connection()
-            cups_printers = cups_connection.getPrinters()
-            for p in cups_printers.keys():
-                self._availablePrinters.update({ p: '%s (%s)' % (p, cups_printers[p]['printer-info']), })
-            self._defaultPrinter = cups_connection.getDefault()
+            try:
+                cups.setUser(_CURRENT_LOCAL_USER)
+                cups_connection = cups.Connection()
+                cups_printers = cups_connection.getPrinters()
+                for p in cups_printers.keys():
+                    self._availablePrinters.update({ p: '%s (%s)' % (p, cups_printers[p]['printer-info']), })
+                self._defaultPrinter = cups_connection.getDefault()
+            except RuntimeError:
+                self._defaultPrinter = '#PRINTSYSTEM_UNAVAILABLE#'
         else:
             # initialize win32print API and retrieve a list of local print queues
-            win32_printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL)
-            for p in win32_printers:
-                if p[3]:
-                    self._availablePrinters.update({p[2]: '%s (%s)' % (p[2], p[3]), })
-                else:
-                    self._availablePrinters.update({p[2]: '%s' % p[2], })
-                self._defaultPrinter = win32print.GetDefaultPrinter()
+            try:
+                win32_printers = win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL)
+                for p in win32_printers:
+                    if p[3]:
+                        self._availablePrinters.update({p[2]: '%s (%s)' % (p[2], p[3]), })
+                    else:
+                        self._availablePrinters.update({p[2]: '%s' % p[2], })
+                        self._defaultPrinter = win32print.GetDefaultPrinter()
+            except:
+                # FIXME: find out what exception could occur here.
+                self._defaultPrinter = '#PRINTSYSTEM_UNAVAILABLE#'
 
         self.client_printing = self._PyHocaGUI.client_printing
 
@@ -211,10 +218,16 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
 
         self.PdfViewCmd.SetValue(self.client_printing.get_property('pdfview_cmd'))
         self.PdfSaveToFolder.SetValue(self.client_printing.get_property('save_to_folder'))
-        try:
-            _printer_name = self._availablePrinters[self.client_printing.get_property('printer')]
-        except KeyError:
-            _printer_name = self._availablePrinters[self._defaultPrinter]
+        if self._defaultPrinter != '#PRINTSYSTEM_UNAVAILABLE#':
+            try:
+                _printer_name = self._availablePrinters[self.client_printing.get_property('printer')]
+            except KeyError:
+                _printer_name = self._availablePrinters[self._defaultPrinter]
+        else:
+            _printer_name = _(u'Print system is not available')
+            self.PrintPrinter.Clear()
+            self.PrintPrinter.Append(_(u'Print system is not available'))
+            self.PrintPrinter.Enable(False)
         self.PrintPrinter.SetValue(_printer_name)
         self.PrintCmd.SetValue(self.client_printing.get_property('print_cmd'))
 
@@ -237,10 +250,18 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
 
     @property
     def _print_action_properties(self):
+
+        # handle missing print system
+        _printer = [ p for p in self._availablePrinters.keys() if self._availablePrinters[p] == self.PrintPrinter.GetValue() and self._defaultPrinter != '#PRINTSYSTEM_UNAVAILABLE#' ]
+        try:
+            _printer = _printer[0]
+        except IndexError:
+            _printer = ''
+
         return {
             'pdfview_cmd': self.PdfViewCmd.GetValue(),
             'save_to_folder': self.PdfSaveToFolder.GetValue(),
-            'printer': [ p for p in self._availablePrinters.keys() if self._availablePrinters[p] == self.PrintPrinter.GetValue() ][0],
+            'printer': _printer,
             'print_cmd': self.PrintCmd.GetValue(),
         }
 
@@ -298,8 +319,9 @@ class PyHocaGUI_PrintingPreferences(wx.Dialog):
 
     def PrintPrinterSelected(self):
         self._disable_PrintOptions()
-        self.PrintPrinterLabel.Enable(True)
-        self.PrintPrinter.Enable(True)
+        if self._defaultPrinter != '#PRINTSYSTEM_UNAVAILABLE#':
+            self.PrintPrinterLabel.Enable(True)
+            self.PrintPrinter.Enable(True)
 
     def PrintCmdSelected(self):
         self._disable_PrintOptions()


hooks/post-receive
-- 
pyhoca-gui.git (Python X2Go Client (wxPython GUI))

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "pyhoca-gui.git" (Python X2Go Client (wxPython GUI)).




More information about the x2go-commits mailing list