diff options
author | Lucian Branescu Mihaila <lucian.branescu@gmail.com> | 2010-06-18 20:18:40 (GMT) |
---|---|---|
committer | Lucian Branescu Mihaila <lucian.branescu@gmail.com> | 2010-06-18 20:18:40 (GMT) |
commit | fbeef143285c74c6aea1ea26423846e1a75b612b (patch) | |
tree | 1376be28dce930d00f74fd1baa27cf4b2018f389 /browser.py | |
parent | 87b61970631dfbe825fe9c7c2678934b37ecc880 (diff) |
Add tab box updates, improve load_uri to accept uris like 'google.com'.
Diffstat (limited to 'browser.py')
-rw-r--r-- | browser.py | 34 |
1 files changed, 19 insertions, 15 deletions
@@ -19,6 +19,7 @@ import os import time import logging +import urlparse from gettext import gettext as _ import gobject @@ -33,8 +34,6 @@ from sugar.graphics import style import sessionstore from palettes import ContentInvoker -#from sessionhistory import HistoryListener -#from progresslistener import ProgressListener _ZOOM_AMOUNT = 0.1 @@ -55,9 +54,10 @@ class TabbedView(gtk.Notebook): self.new_tab() - def new_tab(self): + def new_tab(self, uri=None): browser = Browser() self._append_tab(browser) + browser.load_uri(uri) def _append_tab(self, browser): label = TabLabel(browser) @@ -74,6 +74,9 @@ class TabbedView(gtk.Notebook): settings.set_property('user-stylesheet-uri', 'file:///' + TabbedView.USER_SHEET) + # improves browsing on some buggy websites + settings.set_property('enable-site-specific-quirks', True) + self.append_page(browser, label) browser.show() @@ -133,7 +136,9 @@ class TabLabel(gtk.HBox): gobject.GObject.__init__(self) self._browser = browser - self._browser.connect('is-setup', self.__browser_is_setup_cb) + self._browser.connect('notify::load-status', self.__browser_is_setup_cb) + self._browser.connect('notify::title', self.__title_changed_cb) + self._browser.connect('notify::uri', self.__location_changed_cb) self._label = gtk.Label('') self.pack_start(self._label) @@ -160,16 +165,11 @@ class TabLabel(gtk.HBox): self.__location_changed_cb) browser.connect('notify::title', self.__title_changed_cb) - #def __location_changed_cb(self, progress_listener, pspec): - # uri = progress_listener.location - # cls = components.classes['@mozilla.org/intl/texttosuburi;1'] - # texttosuburi = cls.getService(interfaces.nsITextToSubURI) - # ui_uri = texttosuburi.unEscapeURIForUI(uri.originCharset, uri.spec) - # - # self._label.set_text(ui_uri) + def __location_changed_cb(self, browser): + sefl._label.set_text(browser.props.uri) - #def __title_changed_cb(self, browser, pspec): - # self._label.set_text(browser.props.title) + def __title_changed_cb(self, browser, pspec): + self._label.set_text(browser.props.title) class Browser(webkit.WebView): @@ -182,7 +182,11 @@ class Browser(webkit.WebView): #self.progress = ProgressListener() def load_uri(self, uri): - pass + p_uri = urlparse.urlparse(uri) + if p_uri.schema == '' and p_uri.netloc == '': + return urlparse.urlparse(p_uri.path, 'http') + + return uri def get_session(self): return sessionstore.get_session(self) @@ -223,7 +227,7 @@ class PopupDialog(gtk.Window): self.set_default_size(gtk.gdk.screen_width() - border * 2, gtk.gdk.screen_height() - border * 2) - self.view = WebView() + self.view = webkit.WebView() self.view.connect('notify::visibility', self.__notify_visibility_cb) self.add(self.view) self.view.realize() |