Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1
system-config-printer
system-config-printer-git1.0.x.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File system-config-printer-git1.0.x.patch of Package system-config-printer
diff --git a/ChangeLog b/ChangeLog index 8a93248..c0ebb7f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,97 @@ +2008-10-16 Tim Waugh <twaugh@redhat.com> + + * system-config-printer.py (GUI.save_printer): Prevent traceback + when printer has been deleted. + * system-config-printer.py (GUI.populateList): Cancel properties + dialog if the printer we're editing has been deleted. + Fixes Ubuntu #284444. + +2008-10-16 Tim Waugh <twaugh@redhat.com> + + * system-config-printer.py (GUI.__init__): Set the item width for + the icon view, for a nicer appearance. + +2008-10-16 Tim Waugh <twaugh@redhat.com> + + * debug.py (debugprint): Send debug output to stderr to work + around the samba bug (#5805) that closes stdout. + +2008-10-16 Tim Waugh <twaugh@redhat.com> + + * pysmb.py (AuthContext.perform_authentication): Fixed the SMB + authentication dialog's cancel button (bug #467127). + +2008-10-15 Tim Waugh <twaugh@redhat.com> + + * pysmb.py (AuthContext.perform_authentication): Don't destroy + authentication dialog until after we've fetched the details (bug + #464003). + +2008-10-15 Tim Waugh <twaugh@redhat.com> + + * pysmb.py: Import gettext. + +2008-10-15 Tim Waugh <twaugh@redhat.com> + + * smburi.py (SMBURI._construct): Don't construct URIs containing + "@/". + +2008-10-15 Tim Waugh <twaugh@redhat.com> + + * cupshelpers/ppds.py (PPDs.getInfoFromModel): Restrict URI in + debugging output. + +2008-10-15 Tim Waugh <twaugh@redhat.com> + + * pysmb.py (AuthContext.perform_authentication): Show an error + dialog if the password was incorrect (bug #465407). + * po/POTFILES.in: Translate pysmb.py (no new translatable + strings). + +2008-10-15 Tim Waugh <twaugh@redhat.com> + + * system-config-printer.py + (NewPrinterGUI.on_btnSMBVerify_clicked): Don't show an error + dialog if the SMB authentication dialog is cancelled by the + user (bug #465407). + +2008-10-15 Tim Waugh <twaugh@redhat.com> + + * print-applet.desktop.in (NotShowIn): Don't show the applet in + KDE, as that provides its own version (bug #466945). + +2008-10-10 Tim Waugh <twaugh@redhat.com> + + * system-config-printer.py + (GUI.__init__.UnobtrusiveButton.__init__): Don't use a LinkButton + for the 'Problems?' button (bug #465407). + +2008-10-10 Tim Waugh <twaugh@redhat.com> + + * system-config-printer.glade: Don't use a separator for the + server settings dialog (bug #465407). + +2008-10-10 Tim Waugh <twaugh@redhat.com> + + * system-config-printer.glade: Don't set non-zero page size for + SpinButtons. + +2008-10-10 Tim Waugh <twaugh@redhat.com> + + * errordialogs.py (show_IPP_Error): Don't show an error dialog if + an IPP operation's authentication dialog is cancelled by the + user (bug #465407). + * authconn.py: Show an error dialog if the password was + incorrect (bug #465407). + +2008-10-09 Tim Waugh <twaugh@redhat.com> + + * system-config-printer.glade: Renamed server_settings to + server_settings_menu_entry to avoid naming collision. + * system-config-printer.py (GUI.setConnected): Set Server + Settings... menu entry sensitive depending on whether we are + connected to a server (Ubuntu #280736). + 2008-09-29 Tim Waugh <twaugh@redhat.com> * configure.in: Version 1.0.8. diff --git a/authconn.py b/authconn.py index 6244eee..eb2dd23 100644 --- a/authconn.py +++ b/authconn.py @@ -202,6 +202,7 @@ class Connection: self._forbidden = False self._auth_called = False self._cancel = False + self._dialog_shown = False cups.setPasswordCB (self._password_callback) debugprint ("Authentication: password callback set") return 1 @@ -248,11 +249,26 @@ class Connection: # Reset the flag indicating whether we were given an auth callback. self._auth_called = False + # If we're previously prompted, explain why we're prompting again. + if self._dialog_shown: + d = gtk.MessageDialog (self._parent, + gtk.DIALOG_MODAL | + gtk.DIALOG_DESTROY_WITH_PARENT, + gtk.MESSAGE_ERROR, + gtk.BUTTONS_CLOSE) + d.set_title (_("Not authorized")) + d.set_markup ('<span weight="bold" size="larger">' + + _("Not authorized") + '</span>\n\n' + + _("The password may be incorrect.")) + d.run () + d.destroy () + # Prompt. d = AuthDialog (parent=self._parent) d.set_prompt (self._prompt) d.set_auth_info ([self._use_user, '']) d.field_grab_focus ('password') + self._dialog_shown = True response = d.run () (self._use_user, self._use_password) = d.get_auth_info () diff --git a/cupshelpers/ppds.py b/cupshelpers/ppds.py index 57d1dc0..7873d19 100755 --- a/cupshelpers/ppds.py +++ b/cupshelpers/ppds.py @@ -594,7 +594,9 @@ class PPDs: _debugprint (str (ppdnamelist)) if not id_matched: - print "No ID match for device %s:" % uri + sanitised_uri = re.sub (pattern="//[^@]*@/?", repl="//", + string=str (uri)) + print "No ID match for device %s:" % sanitised_uri print " <manufacturer>%s</manufacturer>" % mfg print " <model>%s</model>" % mdl print " <description>%s</description>" % description diff --git a/debug.py b/debug.py index 4475e9d..79dc510 100644 --- a/debug.py +++ b/debug.py @@ -24,7 +24,7 @@ _debug=False def debugprint (x): if _debug: try: - print x + print >>sys.stderr, x except: pass diff --git a/errordialogs.py b/errordialogs.py index 07e404e..2f85dac 100755 --- a/errordialogs.py +++ b/errordialogs.py @@ -62,8 +62,8 @@ def show_error_dialog (title, text, parent=None): def show_IPP_Error(exception, message, parent=None): if exception == cups.IPP_NOT_AUTHORIZED: - title = _('Not authorized') - text = _('The password may be incorrect.') + # In this case, the user has canceled an authentication dialog. + return else: title = _("CUPS server error") text = (_("There was an error during the CUPS " diff --git a/print-applet.desktop.in b/print-applet.desktop.in index 0439a1c..55d563c 100644 --- a/print-applet.desktop.in +++ b/print-applet.desktop.in @@ -6,5 +6,5 @@ Exec=system-config-printer-applet Terminal=false Type=Application Icon=printer -X-KDE-autostart-after=panel +NotShowIn=KDE StartupNotify=false diff --git a/pysmb.py b/pysmb.py index 3974ed6..e54623b 100644 --- a/pysmb.py +++ b/pysmb.py @@ -27,6 +27,7 @@ except ImportError: USE_OLD_CODE=True import errno +from gettext import gettext as _ import gobject import gtk import os @@ -43,6 +44,7 @@ class AuthContext: self.use_user = user self.use_password = passwd self.use_workgroup = workgroup + self.dialog_shown = False self.parent = parent def perform_authentication (self): @@ -69,6 +71,19 @@ class AuthContext: self.auth_called = False + if self.dialog_shown: + d = gtk.MessageDialog (self.parent, + gtk.DIALOG_MODAL | + gtk.DIALOG_DESTROY_WITH_PARENT, + gtk.MESSAGE_ERROR, + gtk.BUTTONS_CLOSE) + d.set_title (_("Not authorized")) + d.set_markup ('<span weight="bold" size="larger">' + + _("Not authorized") + '</span>\n\n' + + _("The password may be incorrect.")) + d.run () + d.destroy () + # After that, prompt d = gtk.Dialog ("Authentication", self.parent, gtk.DIALOG_MODAL | gtk.DIALOG_NO_SEPARATOR, @@ -109,6 +124,7 @@ class AuthContext: vbox.pack_start (table, False, False, 0) hbox.pack_start (vbox, False, False, 0) d.vbox.pack_start (hbox) + self.dialog_shown = True d.show_all () if self.use_user == 'guest': @@ -117,15 +133,16 @@ class AuthContext: username_entry.set_text (self.use_user) domain_entry.set_text (self.use_workgroup) response = d.run () - d.destroy () if response == gtk.RESPONSE_CANCEL: self.cancel = True + d.destroy () return -1 self.use_user = username_entry.get_text () self.use_password = password_entry.get_text () self.use_workgroup = domain_entry.get_text () + d.destroy () return 1 def initial_authentication (self): diff --git a/smburi.py b/smburi.py index 14362c9..bc0c4af 100644 --- a/smburi.py +++ b/smburi.py @@ -47,7 +47,7 @@ class SMBURI: uri = "%s%s%s" % (urllib.quote (user), uri_password, urllib.quote (group)) - if len (uri) > 0: + if len (group) > 0: uri += '/' uri += urllib.quote (host) if len (share) > 0: diff --git a/system-config-printer.glade b/system-config-printer.glade index 9723013..fe386f8 100644 --- a/system-config-printer.glade +++ b/system-config-printer.glade @@ -67,7 +67,7 @@ </child> <child> - <widget class="GtkImageMenuItem" id="server_settings"> + <widget class="GtkImageMenuItem" id="server_settings_menu_entry"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Adjust server settings</property> <property name="label" translatable="yes">_Settings...</property> @@ -6095,7 +6095,7 @@ Till Kamppeter <till.kamppeter@gmail.com></property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> <property name="focus_on_map">True</property> <property name="urgency_hint">False</property> - <property name="has_separator">True</property> + <property name="has_separator">False</property> <child internal-child="vbox"> <widget class="GtkVBox" id="dialog-vbox10"> @@ -8533,7 +8533,7 @@ Bottom to top, right to left</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">100 10 1000 1 10 10</property> + <property name="adjustment">100 10 1000 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Fri, 23 Feb 2007 14:12:21 GMT"/> </widget> <packing> @@ -8710,7 +8710,7 @@ Bind (bottom)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">50 0 100 1 10 10</property> + <property name="adjustment">50 0 100 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Fri, 23 Feb 2007 14:12:21 GMT"/> </widget> <packing> @@ -9012,7 +9012,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">1 1 1000 1 10 10</property> + <property name="adjustment">1 1 1000 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Thu, 22 Feb 2007 12:15:06 GMT"/> </widget> <packing> @@ -9250,7 +9250,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">100 10 1000 1 10 10</property> + <property name="adjustment">100 10 1000 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 13:56:24 GMT"/> </widget> <packing> @@ -9378,7 +9378,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">100 10 1000 1 10 10</property> + <property name="adjustment">100 10 1000 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 13:56:24 GMT"/> </widget> <packing> @@ -9487,7 +9487,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">0 -180 180 1 10 10</property> + <property name="adjustment">0 -180 180 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 13:56:24 GMT"/> </widget> <packing> @@ -9563,7 +9563,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">1000 1 10000 10 100 10</property> + <property name="adjustment">1000 1 10000 10 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 13:56:24 GMT"/> </widget> <packing> @@ -9826,7 +9826,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">18 0 100 1 10 10</property> + <property name="adjustment">18 0 100 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 15:57:14 GMT"/> </widget> <packing> @@ -9889,7 +9889,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">10 1 100 0.10000000149 1 1</property> + <property name="adjustment">10 1 100 0.10000000149 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 15:54:31 GMT"/> </widget> <packing> @@ -9950,7 +9950,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">6 1 100 0.10000000149 1 1</property> + <property name="adjustment">6 1 100 0.10000000149 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 15:55:39 GMT"/> </widget> <packing> @@ -10040,7 +10040,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">18 0 100 1 10 10</property> + <property name="adjustment">18 0 100 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 15:56:41 GMT"/> </widget> <packing> @@ -10234,7 +10234,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">1 1 4 1 1 1</property> + <property name="adjustment">1 1 4 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 16:03:08 GMT"/> </widget> <packing> @@ -10369,7 +10369,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">36 0 100 1 10 10</property> + <property name="adjustment">36 0 100 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 15:58:06 GMT"/> </widget> <packing> @@ -10459,7 +10459,7 @@ Reverse portrait (180°)</property> <property name="update_policy">GTK_UPDATE_ALWAYS</property> <property name="snap_to_ticks">False</property> <property name="wrap">False</property> - <property name="adjustment">36 0 100 1 10 10</property> + <property name="adjustment">36 0 100 1 0 0</property> <signal name="changed" handler="on_job_option_changed" last_modification_time="Mon, 26 Feb 2007 16:01:04 GMT"/> </widget> <packing> diff --git a/system-config-printer.py b/system-config-printer.py index 295b999..9b5830e 100755 --- a/system-config-printer.py +++ b/system-config-printer.py @@ -209,7 +209,7 @@ class GUI(GtkGUI, monitor.Watcher): "btnPrinterPropertiesApply", "btnPrinterPropertiesClose", "ServerSettingsDialog", - "server_settings", + "server_settings_menu_entry", "statusbarMain", "new_printer", "new_class", "rename", "copy", "delete", @@ -338,9 +338,20 @@ class GUI(GtkGUI, monitor.Watcher): self.AboutDialog.set_icon_name('printer') # Set up "Problems?" link button - problems = gtk.LinkButton ('', label=_("Problems?")) + class UnobtrusiveButton(gtk.Button): + def __init__ (self, **args): + gtk.Button.__init__ (self, **args) + self.set_relief (gtk.RELIEF_NONE) + label = self.get_child () + text = label.get_text () + label.set_use_markup (True) + label.set_markup ('<span size="small" ' + + 'underline="single" ' + + 'color="#0000ee">%s</span>' % text) + + problems = UnobtrusiveButton (label=_("Problems?")) self.hboxServerBrowse.pack_end (problems, False, False, 0) - problems.connect ('clicked', self.on_problems_linkbutton_clicked) + problems.connect ('clicked', self.on_problems_button_clicked) problems.show () self.static_tabs = 3 @@ -363,6 +374,7 @@ class GUI(GtkGUI, monitor.Watcher): gobject.TYPE_STRING) # Tooltip self.dests_iconview.set_model(self.mainlist) + self.dests_iconview.set_item_width (145) self.dests_iconview.set_pixbuf_column (1) self.dests_iconview.set_text_column (2) self.dests_iconview.set_tooltip_column (3) @@ -796,7 +808,8 @@ class GUI(GtkGUI, monitor.Watcher): self.chkServerBrowse, self.chkServerShare, self.chkServerRemoteAdmin, self.chkServerAllowCancelAll, - self.chkServerLogDebug): + self.chkServerLogDebug, + self.server_settings_menu_entry): widget.set_sensitive(connected) sharing = self.chkServerShare.get_active () @@ -978,6 +991,11 @@ class GUI(GtkGUI, monitor.Watcher): self.dests_iconview.select_path (path) model.foreach (maybe_select) + if (self.printer != None and + self.printer.name not in self.printers.keys ()): + # The printer we're editing has been deleted. + self.PrinterPropertiesDialog.response (gtk.RESPONSE_CANCEL) + # Connect to Server def on_connect_servername_changed(self, widget): @@ -1539,6 +1557,10 @@ class GUI(GtkGUI, monitor.Watcher): self.printers.update (this_printer) except cups.IPPError, (e, s): show_IPP_Error(e, s, self.PrinterPropertiesDialog) + except KeyError: + # The printer was deleted in the mean time and the + # user made no changes. + self.populateList () return False @@ -2487,7 +2509,7 @@ class GUI(GtkGUI, monitor.Watcher): nonfatalException() ### The "Problems?" clickable label - def on_problems_linkbutton_clicked (self, *args): + def on_problems_button_clicked (self, *args): if not self.__dict__.has_key ('troubleshooter'): self.troubleshooter = troubleshoot.run (self.on_troubleshoot_quit, parent=self.ServerSettingsDialog) @@ -4233,8 +4255,10 @@ class NewPrinterGUI(GtkGUI): group = group, user = user, passwd = passwd) + canceled = False else: accessible = False + canceled = False self.busy () try: debug = 0 @@ -4264,6 +4288,9 @@ class NewPrinterGUI(GtkGUI): accessible = True except Exception, e: smbc_auth.failed (e) + + if not accessible: + canceled = True except RuntimeError, (e, s): debugprint ("Error accessing share: %s" % repr ((e, s))) reason = s @@ -4277,11 +4304,12 @@ class NewPrinterGUI(GtkGUI): parent=self.NewPrinterWindow) return - text = _("This print share is not accessible.") - if reason: - text = reason - show_error_dialog (_("Print Share Inaccessible"), text, - parent=self.NewPrinterWindow) + if not canceled: + text = _("This print share is not accessible.") + if reason: + text = reason + show_error_dialog (_("Print Share Inaccessible"), text, + parent=self.NewPrinterWindow) ### IPP Browsing def update_IPP_URI_label(self):
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor