system-config-printer-01-temp-for-2.4.diff revision 15409
15409N/Adiff -urN ./cupshelpers/cupshelpers.py ../system-config-printer-1.0.9.p1/cupshelpers/cupshelpers.py
15409N/A--- ./cupshelpers/cupshelpers.py 2008-08-28 14:34:24.000000000 +0100
15409N/A+++ ../system-config-printer-1.0.9.p1/cupshelpers/cupshelpers.py 2008-11-13 14:59:15.399008000 +0000
15409N/A@@ -20,7 +20,10 @@
15409N/A
15409N/A import cups, pprint, os, tempfile, re
15409N/A import locale
15409N/A-from . import _debugprint
15409N/A+#from cupshelpers import _debugprint
15409N/A+
15409N/A+def _debugprint (x):
15409N/A+ print x
15409N/A
15409N/A class Printer:
15409N/A _flags_blacklist = ["options", "local"]
15409N/Adiff -urN ./cupshelpers/openprinting.py ../system-config-printer-1.0.9.p1/cupshelpers/openprinting.py
15409N/A--- ./cupshelpers/openprinting.py 2008-09-26 08:57:34.000000000 +0100
15409N/A+++ ../system-config-printer-1.0.9.p1/cupshelpers/openprinting.py 2008-11-13 15:29:30.444511000 +0000
15409N/A@@ -21,8 +21,10 @@
15409N/A
15409N/A import urllib, httplib, platform, threading, tempfile, traceback
15409N/A import os, sys
15409N/A-from xml.etree.ElementTree import XML
15409N/A-from . import Device
15409N/A+import xml.dom.minidom
15409N/A+#from xml.etree.ElementTree import XML
15409N/A+#from . import Device
15409N/A+from cupshelpers import Device
15409N/A
15409N/A __all__ = ['OpenPrinting']
15409N/A
15409N/A@@ -148,7 +150,23 @@
15409N/A
15409N/A status = 0
15409N/A printers = {}
15409N/A+
15409N/A try:
15409N/A+ doc = xml.dom.minidom.parseString(result)
15409N/A+ dom_printers = doc.getElementsByTagName("printer")
15409N/A+ for printer in dom_printers:
15409N/A+ id_p = printer.getElementsByTagName("id")[0]
15409N/A+ make_p = printer.getElementsByTagName("make")[0]
15409N/A+ model_p = printer.getElementsByTagName("model")[0]
15409N/A+ if id_p != None and make_p != None and model_p != None:
15409N/A+ idtxt = id_p.firstChild.data
15409N/A+ maketxt = make_p.firstChild.data
15409N/A+ modeltxt = model_p.firstChild.data
15409N/A+ if idtxt and maketxt and modeltxt:
15409N/A+ printers[idtxt] = maketxt + " " + modeltxt
15409N/A+
15409N/A+ '''
15409N/A+ printers = self.make_printers(result, keyword = "printer")
15409N/A root = XML (result)
15409N/A # We store the printers as a dict of:
15409N/A # foomatic_id: displayname
15409N/A@@ -162,7 +180,7 @@
15409N/A maketxt = make.text
15409N/A modeltxt = model.text
15409N/A if idtxt and maketxt and modeltxt:
15409N/A- printers[idtxt] = maketxt + " " + modeltxt
15409N/A+ printers[idtxt] = maketxt + " " + modeltxt'''
15409N/A except:
15409N/A status = 1
15409N/A printers = sys.exc_info ()
15409N/A@@ -185,6 +203,68 @@
15409N/A 'format': 'xml' }
15409N/A return self.webQuery(params, parse_result, (callback, user_data))
15409N/A
15409N/A+ def make_drivers(self, result, keyword):
15409N/A+ keyword_start = "<" + keyword
15409N/A+ keyword_id = "id="
15409N/A+ keyword_end = "</" + keyword + ">"
15409N/A+ k_len_start = len(keyword_start)
15409N/A+ k_len_end = len(keyword_end)
15409N/A+ dics = {}
15409N/A+ while result.find(keyword_start) != -1:
15409N/A+ dic = {}
15409N/A+ no = result.find(keyword_start)
15409N/A+ no_end = result.find(keyword_end)
15409N/A+ res = result[no + k_len_start:no_end]
15409N/A+ result = result[no_end+k_len_end:]
15409N/A+ no_id = res.find(keyword_id)
15409N/A+ id_s = res.split('"',2)
15409N/A+ s_id = ""
15409N/A+ if len(id_s) > 1:
15409N/A+ s_id = id_s[1]
15409N/A+ s_name = self.get_string_from_keyword(res, "name")
15409N/A+ dic["name"] = s_name
15409N/A+ s_url = self.get_string_from_keyword(res, "url")
15409N/A+ dic["url"] = s_url
15409N/A+ s_supplier = self.get_string_from_keyword(res, "supplier")
15409N/A+ dic["supplier"] = s_supplier
15409N/A+ s_license = self.get_string_from_keyword(res, "license")
15409N/A+ dic["license"] = s_license
15409N/A+ s_licensetext = self.get_string_from_keyword(res, "licensetext")
15409N/A+ dic["licensetext"] = s_licensetext
15409N/A+ s_nonfreesoftware = self.get_string_from_keyword(res, "nonfreesoftware")
15409N/A+ dic["nonfreesoftware"] = s_nonfreesoftware
15409N/A+ s_thirdpartysupplied = self.get_string_from_keyword(res, "thirdpartysupplied")
15409N/A+ dic["thirdpartysupplied"] = s_thirdpartysupplied
15409N/A+ s_manufacturersupplied = self.get_string_from_keyword(res, "manufacturersupplied")
15409N/A+ dic["manufacturersupplied"] = s_manufacturersupplied
15409N/A+ s_patents = self.get_string_from_keyword(res, "patents")
15409N/A+ dic["patents"] = s_patents
15409N/A+ s_shortdescription = self.get_string_from_keyword(res, "shortdescription")
15409N/A+ dic["shortdescription"] = s_shortdescription
15409N/A+ s_recommended = self.get_string_from_keyword(res, "recommended")
15409N/A+ dic["recommended"] = s_recommended
15409N/A+ dic_functionality = self.get_string_from_keyword(res, "functionality")
15409N/A+ dic["functionality"] = dic_functionality
15409N/A+ dics[s_id] = dic
15409N/A+ return dics
15409N/A+
15409N/A+ def get_string_from_keyword(self, string, keyword):
15409N/A+ keyword_start = "<" + keyword + ">"
15409N/A+ keyword_end = "</" + keyword + ">"
15409N/A+ k_len_start = len(keyword_start)
15409N/A+ no = string.find(keyword_start)
15409N/A+ no_end = string.find(keyword_end)
15409N/A+ if no == -1 or no_end == -1:
15409N/A+ return ""
15409N/A+ if keyword == "functionality":
15409N/A+ dic = {}
15409N/A+ for attribute in ['text', 'lineart', 'graphics',
15409N/A+ 'photo', 'speed']:
15409N/A+ attr = self.get_string_from_keyword(string, attribute)
15409N/A+ dic[attribute] = attr
15409N/A+ return dic
15409N/A+ return string[no + k_len_start:no_end]
15409N/A+
15409N/A def listDrivers(self, model, callback, user_data=None, extra_options=None):
15409N/A """
15409N/A Obtain a list of printer drivers.
15409N/A@@ -207,9 +287,12 @@
15409N/A if status != 0:
15409N/A callback (status, user_data, result)
15409N/A
15409N/A- try:
15409N/A- root = XML (result)
15409N/A drivers = {}
15409N/A+
15409N/A+ try:
15409N/A+ doc = xml.dom.minidom.parseString(result)
15409N/A+# drivers = self.make_drivers(result, keyword = "driver")
15409N/A+
15409N/A # We store the drivers as a dict of:
15409N/A # foomatic_id:
15409N/A # { 'name': name,
15409N/A@@ -251,7 +334,28 @@
15409N/A # There is more information in the raw XML, but this
15409N/A # can be added to the Python structure as needed.
15409N/A
15409N/A- for driver in root.findall ('driver'):
15409N/A+ dom_drivers = doc.getElementsByTagName("driver")
15409N/A+ for driver in dom_drivers:
15409N/A+ id_d = driver.getAttributeNode("id").value
15409N/A+ if id_d == None:
15409N/A+ continue
15409N/A+
15409N/A+ dict = {}
15409N/A+ for attribute in ['name', 'url', 'supplier', 'license',
15409N/A+ 'shortdescription' ]:
15409N/A+ element = driver.getElementsByTagName(attribute)
15409N/A+ if len(element) >= 1 and element[0].firstChild.data != None:
15409N/A+ dict[attribute] = _normalize_space (element[0].firstChild.data)
15409N/A+ import pdb
15409N/A+ pdb.set_trace()
15409N/A+ drivers[id_d] = dict
15409N/A+
15409N/A+# make_p = printer.getElementsByTagName("make")[0]
15409N/A+# model_p = printer.getElementsByTagName("model")[0]
15409N/A+# if id_p != None and make_p != None and model_p != None:
15409N/A+# idtxt = id_p.firstChild.data
15409N/A+
15409N/A+ '''for driver in root.findall ('driver'):
15409N/A id = driver.attrib.get ('id')
15409N/A if id == None:
15409N/A continue
15409N/A@@ -341,7 +445,7 @@
15409N/A if ppds:
15409N/A dict['ppds'] = ppds
15409N/A
15409N/A- drivers[id] = dict
15409N/A+ drivers[id] = dict'''
15409N/A callback (0, user_data, drivers)
15409N/A except:
15409N/A callback (1, user_data, sys.exc_info ())
15409N/Adiff -urN ./cupshelpers/ppds.py ../system-config-printer-1.0.9.p1/cupshelpers/ppds.py
15409N/A--- ./cupshelpers/ppds.py 2008-10-21 17:21:24.000000000 +0100
15409N/A+++ ../system-config-printer-1.0.9.p1/cupshelpers/ppds.py 2008-11-13 11:27:13.388983000 +0000
15409N/A@@ -21,12 +21,14 @@
15409N/A ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
15409N/A
15409N/A import cups
15409N/A-from .cupshelpers import parseDeviceID
15409N/A+#from .cupshelpers import parseDeviceID
15409N/A+from cupshelpers import parseDeviceID
15409N/A import string
15409N/A import locale
15409N/A import os.path
15409N/A import re
15409N/A-from . import _debugprint
15409N/A+#from . import _debugprint
15409N/A+from cupshelpers import _debugprint
15409N/A
15409N/A __all__ = ['ppdMakeModelSplit',
15409N/A 'PPDs']
15409N/Adiff -urN ./system-config-printer.py ../system-config-printer-1.0.9.p1/system-config-printer.py
15409N/A--- ./system-config-printer.py 2008-10-21 10:02:45.000000000 +0100
15409N/A+++ ../system-config-printer-1.0.9.p1/system-config-printer.py 2008-11-13 14:50:02.692200000 +0000
15409N/A@@ -89,7 +89,7 @@
15409N/A contextmenu.set_gettext_function (_)
15409N/A import gettext
15409N/A gettext.textdomain (domain)
15409N/A-gtk.glade.bindtextdomain (domain)
15409N/A+#gtk.glade.bindtextdomain (domain)
15409N/A pkgdata = config.Paths ().get_path ('pkgdatadir')
15409N/A iconpath = os.path.join (pkgdata, 'icons/')
15409N/A sys.path.append (pkgdata)