From a18f3f5aa5949bcc7224f07eb064c500371ec1eb Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 20 Jan 2014 08:57:11 +0100 Subject: [PATCH] Fix tab title when webpage has no title --- qutebrowser/TODO | 1 - qutebrowser/app.py | 3 +++ qutebrowser/widgets/browser.py | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/qutebrowser/TODO b/qutebrowser/TODO index 12439d851..89c4af551 100644 --- a/qutebrowser/TODO +++ b/qutebrowser/TODO @@ -4,7 +4,6 @@ autostart show partial commands statusbar with widgets scrolling simplifying -set tab titles correctly (e.g. pyeval) bugs: diff --git a/qutebrowser/app.py b/qutebrowser/app.py index 2ac8b1eda..3defd3061 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -2,6 +2,7 @@ import sys import argparse import logging from PyQt5.QtWidgets import QWidget, QApplication +from PyQt5.QtCore import QUrl from qutebrowser.widgets.mainwindow import MainWindow from qutebrowser.commands.keys import KeyParser import qutebrowser.commands.utils as cmdutils @@ -97,6 +98,8 @@ class QuteBrowser(QApplication): except Exception as e: out = ': '.join([e.__class__.__name__, str(e)]) + # FIXME we probably want some nicer interface to display these about: pages tab = self.mainwindow.tabs.currentWidget() + tab.setUrl(QUrl('about:pyeval')) tab.setContent(out.encode('UTF-8'), 'text/plain') diff --git a/qutebrowser/widgets/browser.py b/qutebrowser/widgets/browser.py index 66fc9b6d9..4390623d5 100644 --- a/qutebrowser/widgets/browser.py +++ b/qutebrowser/widgets/browser.py @@ -23,6 +23,10 @@ class TabbedBrowser(TabWidget): self.progress_changed(tab.progress) tab.loadProgress.connect(self.progress_changed) tab.loadFinished.connect(self.load_finished) + # FIXME should we really bind this to loadStarted? Sometimes the URL + # isn't set correctly at this point, e.g. when doing + # setContent(..., baseUrl=QUrl('foo')) + tab.loadStarted.connect(self.init_title) tab.titleChanged.connect(self.update_title) def openurl(self, url): @@ -122,6 +126,10 @@ class TabbedBrowser(TabWidget): if text: self.setTabText(self.indexOf(self.sender()), text) + def init_title(self): + s = self.sender() + self.setTabText(self.indexOf(s), s.url().toString()) + def filter_signals(self, signal, *args): dbgstr = "{} ({})".format( signal.signal, ','.join([str(e) for e in args]))