rpms/system-config-printer/devel system-config-printer-git-1.0.x.patch, NONE, 1.1 system-config-printer.spec, 1.227, 1.228

Tim Waugh twaugh at fedoraproject.org
Wed Nov 12 17:50:25 UTC 2008


Author: twaugh

Update of /cvs/pkgs/rpms/system-config-printer/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3588

Modified Files:
	system-config-printer.spec 
Added Files:
	system-config-printer-git-1.0.x.patch 
Log Message:
Include patch.

system-config-printer-git-1.0.x.patch:

--- NEW FILE system-config-printer-git-1.0.x.patch ---
diff -up system-config-printer-1.0.10/authconn.py.1.0.x system-config-printer-1.0.10/authconn.py
--- system-config-printer-1.0.10/authconn.py.1.0.x	2008-11-12 17:38:28.000000000 +0000
+++ system-config-printer-1.0.10/authconn.py	2008-11-12 17:41:23.000000000 +0000
@@ -268,8 +268,15 @@ class Connection:
         d.set_prompt (self._prompt)
         d.set_auth_info ([self._use_user, ''])
         d.field_grab_focus ('password')
+        d.set_keep_above (True)
+        d.show_all ()
+        d.show_now ()
+        gtk.gdk.keyboard_grab (d.window, True)
+        gtk.gdk.pointer_grab (d.window, True)
         self._dialog_shown = True
         response = d.run ()
+        gtk.gdk.pointer_ungrab ()
+        gtk.gdk.keyboard_ungrab ()
         (self._use_user,
          self._use_password) = d.get_auth_info ()
         d.destroy ()
diff -U0 system-config-printer-1.0.10/ChangeLog.1.0.x system-config-printer-1.0.10/ChangeLog
--- system-config-printer-1.0.10/ChangeLog.1.0.x	2008-11-12 17:38:28.000000000 +0000
+++ system-config-printer-1.0.10/ChangeLog	2008-11-12 17:41:23.000000000 +0000
@@ -0,0 +1,52 @@
+2008-11-12  Tim Waugh  <twaugh at redhat.com>
+
+	* system-config-printer.py (NewPrinterGUI.queryDevices,
+	NewPrinterGUI.getDevices_thread): Removed.
+	(NewPrinterGUI.fetchDevices): Run in the main thread instead of
+	starting a new one.  This is necessary because the default
+	configuration of CUPS 1.4 is to require an authenticated system
+	user, and to do that we may need to present an authentication
+	dialog.
+	* PhysicalDevice.py (PhysicalDevice): Use authconn.Connection in
+	case we need to present an authentication dialog.
+	* troubleshoot/DeviceListed.py (DeviceListed.display): Likewise.
+
+2008-11-07  Tim Waugh  <twaugh at redhat.com>
+
+	* authconn.py (Connection._perform_authentication): Grab keyboard
+	and mouse when showing authentication dialog.
+	* pysmb.py (AuthContext.perform_authentication): Likewise.
+	* jobviewer.py (JobViewer.display_auth_info_dialog): Likewise.
+	(JobViewer.auth_info_dialog_response): Ungrab them.
+
+2008-11-07  Tim Waugh  <twaugh at redhat.com>
+
+	* jobviewer.py (JobViewer.auth_info_dialog_response): Don't leak
+	AuthDialog.
+
+2008-11-06  Tim Waugh  <twaugh at redhat.com>
+
+	* troubleshoot/CheckNetworkServerSanity.py
+	(CheckNetworkServerSanity.display): Use strictly correct smb URI.
+
+2008-11-06  Tim Waugh  <twaugh at redhat.com>
+
+	* system-config-printer.py
+	(NewPrinterGUI.on_tvNPDownloadableDrivers_cursor_changed): Fixed
+	traceback in downloadable driver dialog.
+
+2008-11-06  Tim Waugh  <twaugh at redhat.com>
+
+	* system-config-printer.py (GUI.reconnect): Sleep before
+	reconnection attempt, not after.  The CUPS server doesn't
+	necessarily re-start immediately.
+
+2008-11-06  Tim Waugh  <twaugh at redhat.com>
+
+	* cupshelpers/cupshelpers.py (Printer.setAsDefault): Removed
+	old reconnect call which caused a traceback.  Return a boolean
+	indicating whether reconnection is necessary.
+	* system-config-printer.py (GUI.set_default_printer): Reload only
+	if necessary.
+	(GUI.rename_printer): Likewise.
+	
@@ -276,0 +329,6 @@
+2008-10-09  Till Kamppeter  <till.kamppeter at gmail.com>
+
+	* system-config-printer.py: Use message "Searching for
+	downloadable drivers" in the wait window when polling OpenPrinting
+	database vis Jockey.
+
@@ -284,0 +343,10 @@
+2008-10-06  Till Kamppeter  <till.kamppeter at gmail.com>
+
+	* system-config-printer.py, system-config-printer.glade: Display
+	more driver info for downloadable drivers from OpenPrinting:
+	Manufacturer/third-party-supplied? Free software? Patent issues?
+	Recommended? Functionality, support contacts. The license text
+	will now always be shown if available, but the user will only
+	asked whether he accepts it in the case of a non-free license or
+	patentissues.
+
diff -up system-config-printer-1.0.10/cupshelpers/cupshelpers.py.1.0.x system-config-printer-1.0.10/cupshelpers/cupshelpers.py
--- system-config-printer-1.0.10/cupshelpers/cupshelpers.py.1.0.x	2008-11-12 17:38:28.000000000 +0000
+++ system-config-printer-1.0.10/cupshelpers/cupshelpers.py	2008-11-12 17:41:23.000000000 +0000
@@ -377,7 +377,7 @@ class Printer:
                 pass
 
             if s == cups.HTTP_NOT_FOUND:
-                return
+                return False
 
             raise cups.HTTPError (s)
 
@@ -400,16 +400,15 @@ class Printer:
                 self.connection.putFile (resource, tmpfname)
             except cups.HTTPError, (s,):
                 os.remove (tmpfname)
-                return
-
-            # Now reconnect because the server needs to reload.
-            self.reconnect ()
+                return False
 
         try:
             os.remove (tmpfname)
         except OSError:
             pass
 
+        return changed
+
 def getPrinters(connection):
     """
     Obtain a list of printers.
diff -up system-config-printer-1.0.10/jobviewer.py.1.0.x system-config-printer-1.0.10/jobviewer.py
--- system-config-printer-1.0.10/jobviewer.py.1.0.x	2008-11-12 17:38:28.000000000 +0000
+++ system-config-printer-1.0.10/jobviewer.py	2008-11-12 17:41:23.000000000 +0000
@@ -684,15 +684,21 @@ class JobViewer (monitor.Watcher):
         dialog.connect ('delete-event', self.auth_info_dialog_delete)
         dialog.set_data ('job-id', job)
         dialog.show_all ()
+        dialog.set_keep_above (True)
+        dialog.show_now ()
+        gtk.gdk.keyboard_grab (dialog.window, True)
+        gtk.gdk.pointer_grab (dialog.window, True)
 
     def auth_info_dialog_delete (self, dialog, event):
         self.auth_info_dialog_response (dialog, gtk.RESPONSE_CANCEL)
 
     def auth_info_dialog_response (self, dialog, response):
-        dialog.hide ()
+        gtk.gdk.pointer_ungrab ()
+        gtk.gdk.keyboard_ungrab ()
         jobid = dialog.get_data ('job-id')
         del self.auth_info_dialogs[jobid]
         if response != gtk.RESPONSE_OK:
+            dialog.destroy ()
             return
 
         auth_info = dialog.get_auth_info ()
@@ -708,6 +714,8 @@ class JobViewer (monitor.Watcher):
             self.show_IPP_Error (e, m)
             pass
 
+        dialog.destroy ()
+
     def set_statusicon_visibility (self):
         if not self.trayicon:
             return
diff -up system-config-printer-1.0.10/PhysicalDevice.py.1.0.x system-config-printer-1.0.10/PhysicalDevice.py
--- system-config-printer-1.0.10/PhysicalDevice.py.1.0.x	2008-11-12 17:38:28.000000000 +0000
+++ system-config-printer-1.0.10/PhysicalDevice.py	2008-11-12 17:41:23.000000000 +0000
@@ -108,9 +108,10 @@ class PhysicalDevice:
         return cmp (self.sn, other.sn)
 
 if __name__ == '__main__':
-    import cups
-    c = cups.Connection ()
+    import authconn
+    c = authconn.Connection ()
     devices = cupshelpers.getDevices (c)
+
     physicaldevices = []
     for device in devices.values ():
         physicaldevice = PhysicalDevice (device)
diff -up system-config-printer-1.0.10/po/ar.po.1.0.x system-config-printer-1.0.10/po/ar.po
--- system-config-printer-1.0.10/po/ar.po.1.0.x	2008-11-12 17:38:28.000000000 +0000
+++ system-config-printer-1.0.10/po/ar.po	2008-11-12 17:41:23.000000000 +0000
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ar\n"
 "Report-Msgid-Bugs-To: https://bugzilla.redhat.com/bugzilla\n"
-"POT-Creation-Date: 2008-09-29 17:46+0100\n"
+"POT-Creation-Date: 2008-11-05 13:06+0000\n"
 "PO-Revision-Date: 2004-12-05 19:23+0300\n"
 "Last-Translator: Munzir Taha <munzir at kacst.edu.sa>\n"
 "Language-Team: Arabic <fedora-trans-ar at redhat.com>\n"
@@ -57,7 +57,7 @@ msgstr ""
 msgid "Enter IP address"
 msgstr "اسم الخادم أو عنوانه IP:"
 
-#: ../authconn.py:30 ../system-config-printer.glade.h:249
+#: ../authconn.py:30 ../system-config-printer.glade.h:250
 #, fuzzy
 msgid "Username:"
 msgstr "اسم المستخدم:"
@@ -76,11 +76,12 @@ msgstr "الهامش العلوي (نقØ
 msgid "Authentication"
[...76615 lines suppressed...]
-        except:
-            nonfatalException ()
-            self.devices_result = {}
-
-        try:
-            debugprint ("Closing connection (devices)")
-            del c
-        except:
-            pass
-
-        debugprint ("Releasing devices lock")
-        self.devices_lock.release ()
-
     def fetchDevices(self, parent=None):
         debugprint ("fetchDevices")
-        self.queryDevices ()
+        self.lblWait.set_markup ('<span weight="bold" size="larger">' +
+                                 _('Searching') + '</span>\n\n' +
+                                 _('Searching for printers'))
+        if parent == None:
+            parent = self.mainapp.MainWindow
+        self.WaitWindow.set_transient_for (parent)
+        self.WaitWindow.show_now ()
+        while gtk.events_pending ():
+            gtk.main_iteration ()
 
+        debugprint ("Fetching devices")
         try:
-            if not isinstance (self.devices_result, cups.IPPError):
-                # Return the result we got last time.
-                return self.devices_result.copy ()
-        except AttributeError:
-            pass
-
-        time.sleep (0.1)
-
-        # Keep the UI refreshed while we wait for the devices to load.
-        waiting = False
-        while (self.devices_lock.locked()):
-            if not waiting:
-                waiting = True
-                self.lblWait.set_markup ('<span weight="bold" size="larger">' +
-                                         _('Searching') + '</span>\n\n' +
-                                         _('Searching for printers'))
-                if not parent:
-                    parent = self.mainapp.MainWindow
-                self.WaitWindow.set_transient_for (parent)
-                self.WaitWindow.show ()
-
-            while gtk.events_pending ():
-                gtk.main_iteration ()
-
-            time.sleep (0.1)
-
-        if waiting:
+            devices = cupshelpers.getDevices(self.mainapp.cups)
+        except:
             self.WaitWindow.hide ()
+            raise
 
+        self.WaitWindow.hide ()
         debugprint ("Got devices")
-        result = self.devices_result # atomic operation
-        if isinstance (result, cups.IPPError):
-            # Propagate exception.
-            raise result
-        return result.copy ()
+        return devices
 
     def get_hpfax_device_id(self, faxuri):
         os.environ["URI"] = faxuri
@@ -4879,6 +4827,8 @@ class NewPrinterGUI(GtkGUI):
         self.lblNPDownloadableDriverSupplier.set_text ('')
         self.lblNPDownloadableDriverLicense.set_text ('')
         self.lblNPDownloadableDriverDescription.set_text ('')
+        self.lblNPDownloadableDriverFunctionality.set_text ('')
+        self.lblNPDownloadableDriverSupportContacts.set_text ('')
         self.rbtnNPDownloadLicenseNo.set_active (True)
         self.frmNPDownloadableDriverLicenseTerms.hide ()
 
@@ -5030,16 +4980,93 @@ class NewPrinterGUI(GtkGUI):
         pprint.pprint (driver)
         self.ntbkNPDownloadableDriverProperties.set_current_page(1)
         supplier = driver.get('supplier', _("OpenPrinting"))
+        supplier_extra = ""
+        if driver['manufacturersupplied']:
+            supplier_extra = supplier_extra + _("the printer's manufacturer")
+        if driver['url']:
+            if supplier_extra:
+                supplier_extra = supplier_extra + _(", ")
+            supplier_extra = supplier_extra + driver['url']
+        if supplier_extra:
+            supplier = supplier + _(" (%s)") % supplier_extra
         self.lblNPDownloadableDriverSupplier.set_text (supplier)
         license = driver.get('license', _("Distributable"))
+        if driver['freesoftware'] or driver['nonfreesoftware'] or \
+                driver['patents']:
+            license = license + _(" (")
+        if driver['freesoftware']:
+            license = license + _("free software")
+        if driver['nonfreesoftware']:
+            license = license + _("non-free software")
+        if (driver['freesoftware'] or driver['nonfreesoftware']) and \
+                driver['patents']:
+            license = license + _(", ")
+        if driver['patents']:
+            license = license + _("driver contains (possibly) patented algorithms")
+        if driver['freesoftware'] or driver['nonfreesoftware'] or \
+                driver['patents']:
+            license = license + _(")")
         self.lblNPDownloadableDriverLicense.set_text (license)
         description = driver.get('shortdescription', _("None"))
-        self.lblNPDownloadableDriverDescription.set_text (description)
+        self.lblNPDownloadableDriverDescription.set_markup (description)
+        functionality = ""
+        if driver['functionality']['graphics']:
+            functionality = functionality + _("Graphics: %s/100, ") % \
+                driver['functionality']['graphics']
+        if driver['functionality']['lineart']:
+            functionality = functionality + _("Line Art: %s/100, ") % \
+                driver['functionality']['lineart']
+        if driver['functionality']['photo']:
+            functionality = functionality + _("Photo: %s/100, ") % \
+                driver['functionality']['photo']
+        if driver['functionality']['text']:
+            functionality = functionality + _("Text: %s/100, ") % \
+                driver['functionality']['text']
+        if functionality:
+            functionality = functionality[0:functionality.rfind (_(", "))]
+            functionality = _("Output quality: ") + functionality
+        if driver['recommended']:
+            if functionality:
+                functionality = functionality + _(", ")
+            functionality = functionality + _("<b>Recommended Driver</b>")
+        self.lblNPDownloadableDriverFunctionality.set_markup (functionality)
+        supportcontacts = ""
+        if driver['supportcontacts']:
+            for supportentry in driver['supportcontacts']:
+                if supportentry['name']:
+                    supportcontact = " - " + supportentry['name']
+                    supportcontact_extra = ""
+                    if supportentry['url']:
+                        supportcontact_extra = supportcontact_extra + \
+                            supportentry['url']
+                    if supportentry['level']:
+                        if supportcontact_extra:
+                            supportcontact_extra = supportcontact_extra + _(", ")
+                        supportcontact_extra = supportcontact_extra + \
+                            supportentry['level']
+                    if supportcontact_extra:
+                        supportcontact = supportcontact + \
+                            _("\n(%s)") % supportcontact_extra
+                        if supportcontacts:
+                            supportcontacts = supportcontacts + "\n"
+                        supportcontacts = supportcontacts + supportcontact
+        if not supportcontacts:
+            supportcontacts = _("No support contacts known")
+        self.lblNPDownloadableDriverSupportContacts.set_text (supportcontacts)
+        if driver.has_key ('licensetext'):
+            self.frmNPDownloadableDriverLicenseTerms.show ()
+            terms = driver.get('licensetext', _("Not specified."))
+            self.tvNPDownloadableDriverLicense.get_buffer ().set_text (terms)
+        else:
+            self.frmNPDownloadableDriverLicenseTerms.hide ()
         if not driver['nonfreesoftware'] and not driver['patents']:
             self.rbtnNPDownloadLicenseYes.set_active (True)
-            self.frmNPDownloadableDriverLicenseTerms.hide ()
+            self.rbtnNPDownloadLicenseYes.hide ()
+            self.rbtnNPDownloadLicenseNo.hide ()
         else:
             self.rbtnNPDownloadLicenseNo.set_active (True)
+            self.rbtnNPDownloadLicenseYes.show ()
+            self.rbtnNPDownloadLicenseNo.show ()
             self.frmNPDownloadableDriverLicenseTerms.show ()
             terms = driver.get('licensetext', _("Not specified."))
             self.tvNPDownloadableDriverLicense.get_buffer ().set_text (terms)
diff -up system-config-printer-1.0.10/troubleshoot/CheckNetworkServerSanity.py.1.0.x system-config-printer-1.0.10/troubleshoot/CheckNetworkServerSanity.py
--- system-config-printer-1.0.10/troubleshoot/CheckNetworkServerSanity.py.1.0.x	2008-11-12 17:38:29.000000000 +0000
+++ system-config-printer-1.0.10/troubleshoot/CheckNetworkServerSanity.py	2008-11-12 17:41:25.000000000 +0000
@@ -115,7 +115,7 @@ class CheckNetworkServerSanity(Question)
             try:
                 context = smbc.Context ()
                 name = self.answers['remote_server_try_connect']
-                shares = context.opendir ("smb://%s" % name).getdents ()
+                shares = context.opendir ("smb://%s/" % name).getdents ()
                 self.answers['remote_server_smb'] = True
                 self.answers['remote_server_smb_shares'] = shares
             except:
diff -up system-config-printer-1.0.10/troubleshoot/DeviceListed.py.1.0.x system-config-printer-1.0.10/troubleshoot/DeviceListed.py
--- system-config-printer-1.0.10/troubleshoot/DeviceListed.py.1.0.x	2008-11-12 17:38:29.000000000 +0000
+++ system-config-printer-1.0.10/troubleshoot/DeviceListed.py	2008-11-12 17:41:25.000000000 +0000
@@ -70,7 +70,7 @@ class DeviceListed(Question):
 
         try:
             cups.setServer ('')
-            c = cups.Connection ()
+            c = answers['_authenticated_connection']
             devices = c.getDevices ()
             devices_list = []
             for uri, device in devices.iteritems ():


Index: system-config-printer.spec
===================================================================
RCS file: /cvs/pkgs/rpms/system-config-printer/devel/system-config-printer.spec,v
retrieving revision 1.227
retrieving revision 1.228
diff -u -r1.227 -r1.228
--- system-config-printer.spec	12 Nov 2008 17:46:55 -0000	1.227
+++ system-config-printer.spec	12 Nov 2008 17:50:25 -0000	1.228
@@ -7,7 +7,7 @@
 Summary: A printer administration tool
 Name: system-config-printer
 Version: 1.0.10
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2+
 URL: http://cyberelk.net/tim/software/system-config-printer/
 Group: System Environment/Base
@@ -156,7 +156,7 @@
 exit 0
 
 %changelog
-* Wed Nov 12 2008 Tim Waugh <twaugh at redhat.com> 1.0.10-1
+* Wed Nov 12 2008 Tim Waugh <twaugh at redhat.com> 1.0.10-2
 - Updated to 1.0.10.  Applied patch from git.
 - Applied pycups patch from git.
 




More information about the fedora-extras-commits mailing list