From b351fdf4775ee84320c188c784148e63ba220e52 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 28 Jan 2014 07:16:33 +0100 Subject: [PATCH] Handle statusBarMessage from WebView --- qutebrowser/widgets/browser.py | 4 ++++ qutebrowser/widgets/mainwindow.py | 1 + qutebrowser/widgets/statusbar/text.py | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/qutebrowser/widgets/browser.py b/qutebrowser/widgets/browser.py index 27a1400b8..0783cb84f 100644 --- a/qutebrowser/widgets/browser.py +++ b/qutebrowser/widgets/browser.py @@ -13,6 +13,8 @@ class TabbedBrowser(TabWidget): cur_progress = pyqtSignal(int) # Progress of the current tab changed 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 + # FIXME we need to store this in our browser object # Current tab changed scroll position cur_scroll_perc_changed = pyqtSignal(int, int) keypress = pyqtSignal('QKeyEvent') @@ -37,6 +39,8 @@ class TabbedBrowser(TabWidget): lambda *args: self._filter_signals(self.cur_load_finished, *args)) tab.loadStarted.connect( lambda *args: self._filter_signals(self.cur_load_started, *args)) + tab.statusBarMessage.connect( + lambda *args: self._filter_signals(self.cur_statusbar_message, *args)) tab.scroll_pos_changed.connect(self._scroll_pos_changed_handler) # FIXME should we really bind this to loadStarted? Sometimes the URL # isn't set correctly at this point, e.g. when doing diff --git a/qutebrowser/widgets/mainwindow.py b/qutebrowser/widgets/mainwindow.py index 0cd9212ec..18816ef6f 100644 --- a/qutebrowser/widgets/mainwindow.py +++ b/qutebrowser/widgets/mainwindow.py @@ -36,6 +36,7 @@ class MainWindow(QMainWindow): self.tabs.cur_load_finished.connect(self.status.prog.load_finished) self.tabs.cur_load_started.connect(lambda: 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.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/text.py b/qutebrowser/widgets/statusbar/text.py index 39d611fd3..6073680b1 100644 --- a/qutebrowser/widgets/statusbar/text.py +++ b/qutebrowser/widgets/statusbar/text.py @@ -1,3 +1,4 @@ +import logging from PyQt5.QtWidgets import QLabel class Text(QLabel): @@ -28,6 +29,10 @@ class Text(QLabel): else: self.scrollperc = '[{}%]'.format(y) + def set_text(self, text): + logging.debug('Setting text to "{}"'.format(text)) + self.text = text + def update(self): """Update the text displayed""" self.setText(' '.join([self.keystring, self.error, self.text,