[Sugar-devel] [PATCH Browse v2] Display 'Loading...' message in the tab title while the page is loading #3550

Manuel Kaufmann humitos at gmail.com
Fri May 4 08:27:31 EDT 2012


First of all, we don't need to open "about:blank" when we create a new
tab, this was making the history to save that "page" and allowing to
go back to it.

That is related with this PATCH because we are checking the browser
"load-status" property to know what title put in the tab label. Now,
we check for the "load-status" property and set the title according to
the load progress: if WebKit is loading the page we put "Loading..."
or the page's title otherwise with the exception of "about:blank" page
that has no title, so we put "Untitled".

Signed-off-by: Manuel Kaufmann <humitos at gmail.com>
---
 browser.py |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/browser.py b/browser.py
index c0bb7bc..6b744a3 100644
--- a/browser.py
+++ b/browser.py
@@ -190,7 +190,6 @@ class TabbedView(BrowserNotebook):
         else:
             self._append_tab(browser)
         self.emit('focus-url-entry')
-        browser.load_uri('about:blank')
         return browser
 
     def _insert_tab_next(self, browser):
@@ -354,6 +353,7 @@ class TabLabel(Gtk.HBox):
         GObject.GObject.__init__(self)
 
         browser.connect('notify::title', self.__title_changed_cb)
+        browser.connect('notify::load-status', self.__load_status_changed_cb)
 
         self._label = Gtk.Label(label=_('Untitled'))
         self._label.set_ellipsize(Pango.EllipsizeMode.END)
@@ -392,6 +392,15 @@ class TabLabel(Gtk.HBox):
         if widget.props.title:
             self._label.set_text(widget.props.title)
 
+    def __load_status_changed_cb(self, widget, param):
+        status = widget.get_load_status()
+        if WebKit.LoadStatus.PROVISIONAL <= status \
+                < WebKit.LoadStatus.FINISHED:
+            self._label.set_text(_('Loading...'))
+        elif status == WebKit.LoadStatus.FINISHED:
+            if widget.props.title == None:
+                self._label.set_text(_('Untitled'))
+
 
 class Browser(WebKit.WebView):
     __gtype_name__ = 'Browser'
-- 
1.7.7.6



More information about the Sugar-devel mailing list