From d89098582f692d9770ab58bfdd85335ca42deab0 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 10 Feb 2014 17:55:03 +0100 Subject: [PATCH] Show URL in statusbar. --- qutebrowser/widgets/browser.py | 2 ++ qutebrowser/widgets/mainwindow.py | 1 + qutebrowser/widgets/statusbar.py | 14 +++++++++++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/qutebrowser/widgets/browser.py b/qutebrowser/widgets/browser.py index 67003321d..af61ab8bd 100644 --- a/qutebrowser/widgets/browser.py +++ b/qutebrowser/widgets/browser.py @@ -59,6 +59,7 @@ class TabbedBrowser(TabWidget): cur_load_started = pyqtSignal() # Current tab started loading cur_load_finished = pyqtSignal(bool) # Current tab finished loading cur_statusbar_message = pyqtSignal(str) # Status bar message + cur_url_changed = pyqtSignal('QUrl') # Current URL changed # Current tab changed scroll position cur_scroll_perc_changed = pyqtSignal(int, int) set_cmd_text = pyqtSignal(str) # Set commandline to a given text @@ -94,6 +95,7 @@ class TabbedBrowser(TabWidget): self._filter_factory(self.cur_statusbar_message)) tab.scroll_pos_changed.connect( self._filter_factory(self.cur_scroll_perc_changed)) + tab.urlChanged.connect(self._filter_factory(self.cur_url_changed)) tab.titleChanged.connect(self._titleChanged_handler) # FIXME sometimes this doesn't load tab.open_tab.connect(self.tabopen) diff --git a/qutebrowser/widgets/mainwindow.py b/qutebrowser/widgets/mainwindow.py index 939266dfe..750cec516 100644 --- a/qutebrowser/widgets/mainwindow.py +++ b/qutebrowser/widgets/mainwindow.py @@ -68,6 +68,7 @@ class MainWindow(QMainWindow): self.status.prog.set_progress(0)) self.tabs.cur_scroll_perc_changed.connect(self.status.txt.set_perc) self.tabs.cur_statusbar_message.connect(self.status.txt.set_text) + self.tabs.cur_url_changed.connect(self.status.txt.set_url) self.status.cmd.esc_pressed.connect(self.tabs.setFocus) self.status.cmd.hide_completion.connect(self.completion.hide) self.status.cmd.textChanged.connect(self.completion.cmd_text_changed) diff --git a/qutebrowser/widgets/statusbar.py b/qutebrowser/widgets/statusbar.py index c86c3eb02..9f8f5f52e 100644 --- a/qutebrowser/widgets/statusbar.py +++ b/qutebrowser/widgets/statusbar.py @@ -26,6 +26,7 @@ from PyQt5.QtGui import QValidator, QKeySequence import qutebrowser.utils.config as config import qutebrowser.commands.keys as keys +from qutebrowser.utils.url import urlstring class StatusBar(QWidget): @@ -333,6 +334,9 @@ class Text(QLabel): error = '' text = '' scrollperc = '' + url = '' + + fields = ['keystring', 'url', 'error', 'text', 'scrollperc'] def __init__(self, bar): super().__init__(bar) @@ -341,12 +345,17 @@ class Text(QLabel): def __setattr__(self, name, value): super().__setattr__(name, value) - self.update() + if name in self.fields: + self.update() def set_keystring(self, s): """Setter to be used as a Qt slot.""" self.keystring = s + def set_url(self, s): + """Setter to be used as a Qt slot.""" + self.url = urlstring(s) + def set_perc(self, x, y): """Setter to be used as a Qt slot.""" # pylint: disable=unused-argument @@ -364,5 +373,4 @@ class Text(QLabel): def update(self): """Update the text displayed.""" - self.setText(' '.join([self.keystring, self.error, self.text, - self.scrollperc])) + self.setText(' '.join(getattr(self, name) for name in self.fields))