tags 549037 + patch
thanks
Hi,
I've just looked into this and have ported foomatic-gui to webkit. The widget
seems to load fine et al, but I can't test it properly since foomatic doesn't
display any printer info (not even with an unpatched version).
If you test the patch and find any problems let me know.
Cheers,
Emilio
diff -ruNp foomatic-gui-0.7.9.2+nmu2/foomatic-gui foomatic-gui-0.7.9.2+nmu2.new/foomatic-gui
--- foomatic-gui-0.7.9.2+nmu2/foomatic-gui 2008-10-03 13:18:22.000000000 +0200
+++ foomatic-gui-0.7.9.2+nmu2.new/foomatic-gui 2010-05-21 20:25:03.000000000 +0200
@@ -64,7 +64,7 @@ except:
gnomevfs = gnome.vfs
import tempfile
-import gtkhtml2
+import webkit
import new
import types
@@ -188,17 +188,13 @@ class GUI(gtk.glade.XML):
selection = view.get_selection()
selection.connect('changed', self.fix_driverpage_buttons)
- htmlview = gtkhtml2.View()
- self.printinfo = gtkhtml2.Document()
- self.printinfo.connect('link-clicked', self.link_clicked)
- htmlview.connect("on_url", self.on_url)
- self.printinfo.connect("request-url", self.request_url)
- htmlview.get_vadjustment().set_value(0)
- self.printinfowin.set_hadjustment(htmlview.get_hadjustment())
- self.printinfowin.set_vadjustment(htmlview.get_vadjustment())
- self.printinfo.clear()
- htmlview.set_document(self.printinfo)
- self.printinfowin.add(htmlview)
+ self.printinfo = webkit.WebView()
+ self.printinfo.connect('navigation-policy-decision-requested',
+ self.navigation_policy_decision_requested)
+ #self.printinfo.get_focus_vadjustment().set_value(0) # FIXME
+ self.printinfowin.set_hadjustment(self.printinfo.get_focus_hadjustment())
+ self.printinfowin.set_vadjustment(self.printinfo.get_focus_vadjustment())
+ self.printinfowin.add(self.printinfo)
self.printinfowin.show_all()
self.printinfowin.set_sensitive(False)
@@ -634,15 +630,13 @@ class GUI(gtk.glade.XML):
self.druid1.set_buttons_sensitive(True, enabled, True, True)
if changed:
- self.printinfo.clear()
+ self.printinfo.load_string("", "", "", "")
if printinfo:
- self.printinfo.open_stream('text/html')
html = '''<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head><body>%s</body></html>''' % printinfo
html = html.encode('utf-8')
- self.printinfo.write_stream(html)
- self.printinfo.close_stream()
+ self.printinfo.load_string(html, "text/html", "utf-8", "")
va = self.printinfowin.get_vadjustment()
va.set_value(va.lower)
self.printinfowin.set_sensitive(True)
@@ -671,7 +665,7 @@ class GUI(gtk.glade.XML):
self.oldmake = make
# Clear the printinfo when we change rows
- self.printinfo.clear()
+ self.printinfo.load_string("", "", "", "")
self.printinfowin.set_sensitive(False)
view = self.model_treeview
@@ -1003,17 +997,12 @@ class GUI(gtk.glade.XML):
on_quit1_activate = on_mainWindow_delete_event
on_set_options1_activate = on_options_button_clicked
- # HTML Stuff - currently not much here
- def on_url(self, view, url):
- return
-
- def link_clicked(self, document, link):
- link = link.strip()
+ def navigation_policy_decision_requested(self, view, frame, request, navigation_action, policy_decision):
+ link = request.get_uri().strip()
+ print "link: " + link
gnome.url_show(link)
- return
-
- def request_url(self, document, url, stream):
- return
+ policy_decision.ignore() # Don't follow the link
+ return True # We've handled the request
def main():
app = GUI()