[system-config-printer] Avoid traceback in most recent change (bug #878527).

Tim Waugh twaugh at fedoraproject.org
Tue Nov 20 17:45:29 UTC 2012


commit 587aba260ba21d38f5a50b5a83ac0ce35fce777c
Author: Tim Waugh <twaugh at redhat.com>
Date:   Tue Nov 20 17:40:26 2012 +0000

    Avoid traceback in most recent change (bug #878527).
    
    Resolves: rhbz#878527

 system-config-printer-FirewallD.patch |  232 +++++++++++++++++----------------
 system-config-printer.spec            |    5 +-
 2 files changed, 125 insertions(+), 112 deletions(-)
---
diff --git a/system-config-printer-FirewallD.patch b/system-config-printer-FirewallD.patch
index 29c5cf4..f71cee3 100644
--- a/system-config-printer-FirewallD.patch
+++ b/system-config-printer-FirewallD.patch
@@ -1,5 +1,6 @@
---- system-config-printer-1.3.11/firewallsettings.py.FirewallD	2012-09-21 13:34:29.070164405 +0200
-+++ system-config-printer-1.3.11/firewallsettings.py	2012-09-21 13:34:29.070164405 +0200
+diff -up system-config-printer-1.3.12/firewallsettings.py.FirewallD system-config-printer-1.3.12/firewallsettings.py
+--- system-config-printer-1.3.12/firewallsettings.py.FirewallD	2012-11-20 17:36:44.148167348 +0000
++++ system-config-printer-1.3.12/firewallsettings.py	2012-11-20 17:36:44.148167348 +0000
 @@ -0,0 +1,279 @@
 +#!/usr/bin/python
 +
@@ -280,9 +281,10 @@
 +        return self._check_any_allowed (set(["--port=%s:%s" %
 +                                                    (MDNS_PORT, MDNS_PROTOCOL),
 +                                             "--service=" + MDNS_SERVICE]))
---- system-config-printer-1.3.11/Makefile.in.FirewallD	2012-08-03 12:04:49.000000000 +0200
-+++ system-config-printer-1.3.11/Makefile.in	2012-09-21 13:38:04.787202523 +0200
-@@ -358,7 +358,7 @@ nobase_pkgdata_DATA = \
+diff -up system-config-printer-1.3.12/Makefile.in.FirewallD system-config-printer-1.3.12/Makefile.in
+--- system-config-printer-1.3.12/Makefile.in.FirewallD	2012-10-05 17:01:02.000000000 +0100
++++ system-config-printer-1.3.12/Makefile.in	2012-11-20 17:36:44.149167352 +0000
+@@ -384,7 +384,7 @@ nobase_pkgdata_DATA = \
  	dnssdresolve.py					\
  	errordialogs.py					\
  	HIG.py						\
@@ -291,8 +293,9 @@
  	gui.py						\
  	gtkinklevel.py					\
  	gtkspinner.py					\
---- system-config-printer-1.3.11/newprinter.py.FirewallD	2012-05-24 14:03:21.000000000 +0200
-+++ system-config-printer-1.3.11/newprinter.py	2012-09-21 13:34:29.071164392 +0200
+diff -up system-config-printer-1.3.12/newprinter.py.FirewallD system-config-printer-1.3.12/newprinter.py
+--- system-config-printer-1.3.12/newprinter.py.FirewallD	2012-09-17 11:08:52.000000000 +0100
++++ system-config-printer-1.3.12/newprinter.py	2012-11-20 17:36:44.149167352 +0000
 @@ -63,7 +63,7 @@ from smburi import SMBURI
  from errordialogs import *
  from PhysicalDevice import PhysicalDevice
@@ -362,8 +365,101 @@
                      f.write ()
          except (dbus.DBusException, Exception):
              nonfatalException ()
---- system-config-printer-1.3.11/serversettings.py.FirewallD	2012-05-24 14:03:22.000000000 +0200
-+++ system-config-printer-1.3.11/serversettings.py	2012-09-21 13:34:29.072164379 +0200
+diff -up system-config-printer-1.3.12/printerproperties.py.FirewallD system-config-printer-1.3.12/printerproperties.py
+--- system-config-printer-1.3.12/printerproperties.py.FirewallD	2012-09-17 11:08:52.000000000 +0100
++++ system-config-printer-1.3.12/printerproperties.py	2012-11-20 17:37:00.853222088 +0000
+@@ -2,7 +2,7 @@
+ 
+ ## system-config-printer
+ 
+-## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
++## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ ## Authors:
+ ##  Tim Waugh <twaugh at redhat.com>
+ ##  Florian Festi <ffesti at redhat.com>
+@@ -562,6 +562,8 @@ class PrinterPropertiesDialog(GtkGUI):
+         self.newPrinterGUI = newprinter.NewPrinterGUI ()
+         self._connect ("newPrinterGUI", self.newPrinterGUI,
+                        "printer-modified", self.on_printer_modified)
++        self._connect ("newPrinterGUI", self.newPrinterGUI,
++                       "dialog-canceled", self.on_printer_not_modified)
+         if parent:
+             self.dialog.set_transient_for (parent)
+ 
+@@ -1820,30 +1822,49 @@ class PrinterPropertiesDialog(GtkGUI):
+             self.changed.discard(self.tvClassMembers)
+         self.setDataButtonState()
+ 
++    def sensitise_new_printer_widgets (self, sensitive=True):
++        sensitive = (sensitive and
++                     self.printer and
++                     not (self.printer.discovered or
++                          bool (self.changed)))
++        for button in [self.btnChangePPD,
++                       self.btnSelectDevice]:
++            button.set_sensitive (sensitive)
++
++    def desensitise_new_printer_widgets (self):
++        self.sensitise_new_printer_widgets (False)
++        
+     # change device
+     def on_btnSelectDevice_clicked(self, button):
+         busy (self.dialog)
+-        self.newPrinterGUI.init("device", device_uri=self.printer.device_uri,
+-                                name=self.printer.name,
+-                                host=self._host,
+-                                encryption=self._encryption,
+-                                parent=self.dialog)
++        self.desensitise_new_printer_widgets ()
++        if not self.newPrinterGUI.init("device", device_uri=self.printer.device_uri,
++                                       name=self.printer.name,
++                                       host=self._host,
++                                       encryption=self._encryption,
++                                       parent=self.dialog):
++            self.sensitise_new_printer_widgets ()
++
+         ready (self.dialog)
+ 
+     # change PPD
+     def on_btnChangePPD_clicked(self, button):
+         busy (self.dialog)
+-        self.newPrinterGUI.init("ppd", device_uri=self.printer.device_uri,
+-                                ppd=self.ppd,
+-                                name=self.printer.name,
+-                                host=self._host,
+-                                encryption=self._encryption,
+-                                parent=self.dialog)
++        self.desensitise_new_printer_widgets ()
++        if not self.newPrinterGUI.init("ppd", device_uri=self.printer.device_uri,
++                                       ppd=self.ppd,
++                                       name=self.printer.name,
++                                       host=self._host,
++                                       encryption=self._encryption,
++                                       parent=self.dialog):
++            self.sensitise_new_printer_widgets ()
++
+         ready (self.dialog)
+ 
+     # NewPrinterGUI signal handlers
+     def on_printer_modified (self, obj, name, ppd_has_changed):
+         debugprint ("on_printer_modified called")
++        self.sensitise_new_printer_widgets ()
+         if self.dialog.get_property ('visible') and self.printer:
+             try:
+                 self.printer.getAttributes ()
+@@ -1855,6 +1876,9 @@ class PrinterPropertiesDialog(GtkGUI):
+             except cups.IPPError:
+                 pass
+ 
++    def on_printer_not_modified (self, obj):
++        self.sensitise_new_printer_widgets ()
++
+     # Monitor signal handlers
+     def on_printer_event (self, mon, printer, eventname, event):
+         self.on_printer_modified (None, printer, False)
+diff -up system-config-printer-1.3.12/serversettings.py.FirewallD system-config-printer-1.3.12/serversettings.py
+--- system-config-printer-1.3.12/serversettings.py.FirewallD	2012-09-17 11:08:52.000000000 +0100
++++ system-config-printer-1.3.12/serversettings.py	2012-11-20 17:36:44.150167356 +0000
 @@ -34,7 +34,7 @@ import time
  import authconn
  from debug import *
@@ -394,8 +490,9 @@
                          f.write ()
              except (dbus.DBusException, Exception):
                  nonfatalException ()
---- system-config-printer-1.3.11/system-config-printer.py	2012-09-21 13:34:29.073164365 +0200
-+++ system-config-printer-1.3.12/system-config-printer.py	2012-11-19 16:24:49.505775460 +0000
+diff -up system-config-printer-1.3.12/system-config-printer.py.FirewallD system-config-printer-1.3.12/system-config-printer.py
+--- system-config-printer-1.3.12/system-config-printer.py.FirewallD	2012-09-18 17:00:14.000000000 +0100
++++ system-config-printer-1.3.12/system-config-printer.py	2012-11-20 17:36:44.150167356 +0000
 @@ -2,7 +2,7 @@
  
  ## system-config-printer
@@ -405,7 +502,7 @@
  ## Authors:
  ##  Tim Waugh <twaugh at redhat.com>
  ##  Florian Festi <ffesti at redhat.com>
-@@ -309,9 +309,9 @@
+@@ -309,9 +309,9 @@ class GUI(GtkGUI):
          self.btnNew.connect ('clicked', self.on_new_printer_activate)
          self.toolbar.add (self.btnNew)
          self.toolbar.add (gtk.SeparatorToolItem ())
@@ -418,7 +515,7 @@
          self.toolbar.show_all ()
  
          server_context_menu = gtk.Menu ()
-@@ -370,6 +370,7 @@
+@@ -370,6 +370,7 @@ class GUI(GtkGUI):
          self.newPrinterGUI = np = newprinter.NewPrinterGUI()
          np.connect ("printer-added", self.on_new_printer_added)
          np.connect ("printer-modified", self.on_printer_modified)
@@ -426,7 +523,7 @@
  
          # Set up "About" dialog
          self.AboutDialog.set_program_name(config.PACKAGE)
-@@ -446,6 +447,8 @@
+@@ -446,6 +447,8 @@ class GUI(GtkGUI):
  
          # Printer Properties dialog
          self.propertiesDlg = printerproperties.PrinterPropertiesDialog ()
@@ -435,7 +532,7 @@
  
          try:
              self.populateList()
-@@ -506,11 +509,13 @@
+@@ -506,11 +509,13 @@ class GUI(GtkGUI):
          name = unicode (model.get_value (iter, 2))
          object = model.get_value (iter, 0)
  
@@ -449,7 +546,7 @@
              show_IPP_Error (e, m, self.PrintersWindow)
              if e == cups.IPP_SERVICE_UNAVAILABLE:
                  self.cups = None
-@@ -518,12 +523,16 @@
+@@ -518,12 +523,16 @@ class GUI(GtkGUI):
                  self.populateList ()
              return
          except RuntimeError:
@@ -466,7 +563,7 @@
      def dests_iconview_selection_changed (self, iconview):
          self.updating_widgets = True
          paths = iconview.get_selected_items ()
-@@ -1708,6 +1717,34 @@
+@@ -1708,6 +1717,34 @@ class GUI(GtkGUI):
      def on_troubleshoot_quit(self, troubleshooter):
          del self.troubleshooter
  
@@ -501,7 +598,7 @@
      # About dialog
      def on_about_activate(self, widget):
          self.AboutDialog.set_transient_for (self.PrintersWindow)
-@@ -1728,26 +1765,44 @@
+@@ -1728,26 +1765,44 @@ class GUI(GtkGUI):
      # == New Printer Dialog ==============================================
      # ====================================================================
  
@@ -546,8 +643,9 @@
          self.populateList ()
  
          if not self.printers.has_key (name):
---- system-config-printer-1.3.11/ui/NewPrinterWindow.ui.FirewallD	2012-05-24 14:03:22.000000000 +0200
-+++ system-config-printer-1.3.11/ui/NewPrinterWindow.ui	2012-09-21 13:34:29.075164337 +0200
+diff -up system-config-printer-1.3.12/ui/NewPrinterWindow.ui.FirewallD system-config-printer-1.3.12/ui/NewPrinterWindow.ui
+--- system-config-printer-1.3.12/ui/NewPrinterWindow.ui.FirewallD	2012-09-17 11:08:52.000000000 +0100
++++ system-config-printer-1.3.12/ui/NewPrinterWindow.ui	2012-11-20 17:36:44.151167360 +0000
 @@ -4,7 +4,7 @@
    <object class="GtkWindow" id="NewPrinterWindow">
      <property name="can_focus">False</property>
@@ -557,97 +655,9 @@
      <property name="window_position">center-on-parent</property>
      <property name="default_width">600</property>
      <property name="default_height">420</property>
---- system-config-printer-1.3.12/printerproperties.py.modality	2012-09-17 11:08:52.000000000 +0100
-+++ system-config-printer-1.3.12/printerproperties.py	2012-11-19 16:24:49.505775460 +0000
-@@ -2,7 +2,7 @@
- 
- ## system-config-printer
- 
--## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
-+## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
- ## Authors:
- ##  Tim Waugh <twaugh at redhat.com>
- ##  Florian Festi <ffesti at redhat.com>
-@@ -562,6 +562,8 @@ class PrinterPropertiesDialog(GtkGUI):
-         self.newPrinterGUI = newprinter.NewPrinterGUI ()
-         self._connect ("newPrinterGUI", self.newPrinterGUI,
-                        "printer-modified", self.on_printer_modified)
-+        self._connect ("newPrinterGUI", self.newPrinterGUI,
-+                       "dialog-canceled", self.on_printer_not_modified)
-         if parent:
-             self.dialog.set_transient_for (parent)
- 
-@@ -1820,30 +1822,47 @@ class PrinterPropertiesDialog(GtkGUI):
-             self.changed.discard(self.tvClassMembers)
-         self.setDataButtonState()
- 
-+    def sensitise_new_printer_widgets (self, sensitive=True):
-+        sensitive = sensitive and not (self.printer.discovered or
-+                                       bool (self.changed))
-+        for button in [self.btnChangePPD,
-+                       self.btnSelectDevice]:
-+            button.set_sensitive (sensitive)
-+
-+    def desensitise_new_printer_widgets (self):
-+        self.sensitise_new_printer_widgets (False)
-+        
-     # change device
-     def on_btnSelectDevice_clicked(self, button):
-         busy (self.dialog)
--        self.newPrinterGUI.init("device", device_uri=self.printer.device_uri,
--                                name=self.printer.name,
--                                host=self._host,
--                                encryption=self._encryption,
--                                parent=self.dialog)
-+        self.desensitise_new_printer_widgets ()
-+        if not self.newPrinterGUI.init("device", device_uri=self.printer.device_uri,
-+                                       name=self.printer.name,
-+                                       host=self._host,
-+                                       encryption=self._encryption,
-+                                       parent=self.dialog):
-+            self.sensitise_new_printer_widgets ()
-+
-         ready (self.dialog)
- 
-     # change PPD
-     def on_btnChangePPD_clicked(self, button):
-         busy (self.dialog)
--        self.newPrinterGUI.init("ppd", device_uri=self.printer.device_uri,
--                                ppd=self.ppd,
--                                name=self.printer.name,
--                                host=self._host,
--                                encryption=self._encryption,
--                                parent=self.dialog)
-+        self.desensitise_new_printer_widgets ()
-+        if not self.newPrinterGUI.init("ppd", device_uri=self.printer.device_uri,
-+                                       ppd=self.ppd,
-+                                       name=self.printer.name,
-+                                       host=self._host,
-+                                       encryption=self._encryption,
-+                                       parent=self.dialog):
-+            self.sensitise_new_printer_widgets ()
-+
-         ready (self.dialog)
- 
-     # NewPrinterGUI signal handlers
-     def on_printer_modified (self, obj, name, ppd_has_changed):
-         debugprint ("on_printer_modified called")
-+        self.sensitise_new_printer_widgets ()
-         if self.dialog.get_property ('visible') and self.printer:
-             try:
-                 self.printer.getAttributes ()
-@@ -1855,6 +1874,9 @@ class PrinterPropertiesDialog(GtkGUI):
-             except cups.IPPError:
-                 pass
- 
-+    def on_printer_not_modified (self, obj):
-+        self.sensitise_new_printer_widgets ()
-+
-     # Monitor signal handlers
-     def on_printer_event (self, mon, printer, eventname, event):
-         self.on_printer_modified (None, printer, False)
---- system-config-printer-1.3.12/ui/PrinterPropertiesDialog.ui.modality	2012-08-08 13:05:21.000000000 +0100
-+++ system-config-printer-1.3.12/ui/PrinterPropertiesDialog.ui	2012-11-19 16:24:49.506775465 +0000
+diff -up system-config-printer-1.3.12/ui/PrinterPropertiesDialog.ui.FirewallD system-config-printer-1.3.12/ui/PrinterPropertiesDialog.ui
+--- system-config-printer-1.3.12/ui/PrinterPropertiesDialog.ui.FirewallD	2012-08-08 13:05:21.000000000 +0100
++++ system-config-printer-1.3.12/ui/PrinterPropertiesDialog.ui	2012-11-20 17:36:44.152167364 +0000
 @@ -89,7 +89,7 @@
    </object>
    <object class="GtkDialog" id="PrinterPropertiesDialog">
diff --git a/system-config-printer.spec b/system-config-printer.spec
index 08a87a8..19f5ddd 100644
--- a/system-config-printer.spec
+++ b/system-config-printer.spec
@@ -1,7 +1,7 @@
 Summary: A printer administration tool
 Name: system-config-printer
 Version: 1.3.12
-Release: 4%{?dist}
+Release: 5%{?dist}
 License: GPLv2+
 URL: http://cyberelk.net/tim/software/system-config-printer/
 Group: System Environment/Base
@@ -175,6 +175,9 @@ touch %buildroot%{_localstatedir}/run/udev-configure-printer/usb-uris
 exit 0
 
 %changelog
+* Tue Nov 20 2012 Tim Waugh <twaugh at redhat.com> 1.3.12-5
+- Avoid traceback in most recent change (bug #878527).
+
 * Mon Nov 19 2012 Tim Waugh <twaugh at redhat.com> 1.3.12-4
 - Fixed dialog modality problem which prevented e.g. changing drivers.
 


More information about the scm-commits mailing list