From ed0d0d8ff78506d1be5971ab3582cead352bd85a Mon Sep 17 00:00:00 2001
From: Florian Bruhin <git@the-compiler.org>
Date: Thu, 8 May 2014 21:04:27 +0200
Subject: [PATCH] Handle tab titles via onUrlChanged

---
 qutebrowser/widgets/_tabbedbrowser.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/qutebrowser/widgets/_tabbedbrowser.py b/qutebrowser/widgets/_tabbedbrowser.py
index 48412e4d5..d239ac2a3 100644
--- a/qutebrowser/widgets/_tabbedbrowser.py
+++ b/qutebrowser/widgets/_tabbedbrowser.py
@@ -130,6 +130,7 @@ class TabbedBrowser(TabWidget):
             self._filter.create(self.cur_statusbar_message))
         tab.scroll_pos_changed.connect(
             self._filter.create(self.cur_scroll_perc_changed))
+        tab.urlChanged.connect(self.on_url_changed)
         tab.urlChanged.connect(self._filter.create(self.cur_url_changed))
         # hintmanager
         tab.hintmanager.hint_strings_updated.connect(self.hint_strings_updated)
@@ -159,7 +160,7 @@ class TabbedBrowser(TabWidget):
         self._tabs.append(tab)
         if url is not None:
             url = urlutils.qurl(url)
-            self.addTab(tab, urlutils.urlstring(url))
+            self.addTab(tab, "")
             tab.openurl(url)
         else:
             self.addTab(tab, "")
@@ -392,6 +393,13 @@ class TabbedBrowser(TabWidget):
         else:
             logging.debug("ignoring title change")
 
+    @pyqtSlot('QUrl')
+    def on_url_changed(self, url):
+        """Set the new URL as title if there's no title yet."""
+        idx = self.indexOf(self.sender())
+        if not self.tabText(idx):
+            self.setTabText(idx, urlutils.urlstring(url))
+
     @pyqtSlot()
     def on_icon_changed(self):
         """Set the icon of a tab.