From 77e8eb270efee8602b91086615161ebaef2b31bc Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 16 Oct 2020 16:26:11 +0200 Subject: [PATCH] Get rid of GlobalMessageBridge After f16b96aa28fc68c0b9caf15241067e51797dd604, the per-window MessageBridge wasn't really needed anymore - only for the statusbar's set_text method, which we can just call directly as well. --- qutebrowser/browser/hints.py | 11 +++++----- qutebrowser/mainwindow/mainwindow.py | 11 ---------- qutebrowser/mainwindow/statusbar/bar.py | 5 +++-- qutebrowser/utils/message.py | 28 +------------------------ tests/conftest.py | 2 +- tests/helpers/messagemock.py | 11 +--------- tests/unit/browser/test_hints.py | 7 +++---- 7 files changed, 14 insertions(+), 61 deletions(-) diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index abd3f2600..1c50f49ea 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -418,9 +418,9 @@ class HintManager(QObject): for label in self._context.all_labels: label.cleanup() - message_bridge = objreg.get('message-bridge', scope='window', - window=self._win_id) - message_bridge.set_text('') + window = objreg.get('main-window', scope='window', window=self._win_id) + window.status.set_text('') + self._context = None def _hint_strings(self, elems: _ElemsType) -> _HintStringsType: @@ -651,9 +651,8 @@ class HintManager(QObject): modeman.enter(self._win_id, usertypes.KeyMode.hint, 'HintManager.start') - message_bridge = objreg.get('message-bridge', scope='window', - window=self._win_id) - message_bridge.set_text(self._get_text()) + window = objreg.get('main-window', scope='window', window=self._win_id) + window.status.set_text(self._get_text()) if self._context.first: self._fire(strings[0]) diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index 457a85465..c17c99b2a 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -215,10 +215,6 @@ class MainWindow(QWidget): objreg.register('tab-registry', tab_registry, scope='window', window=self.win_id) - message_bridge = message.MessageBridge(self) - objreg.register('message-bridge', message_bridge, scope='window', - window=self.win_id) - self.setWindowTitle('qutebrowser') self._vbox = QVBoxLayout(self) self._vbox.setContentsMargins(0, 0, 0, 0) @@ -481,13 +477,8 @@ class MainWindow(QWidget): """Set some sensible default geometry.""" self.setGeometry(QRect(50, 50, 800, 600)) - def _get_object(self, name): - """Get an object for this window in the object registry.""" - return objreg.get(name, scope='window', window=self.win_id) - def _connect_signals(self): """Connect all mainwindow signals.""" - message_bridge = self._get_object('message-bridge') mode_manager = modeman.instance(self.win_id) # misc @@ -518,8 +509,6 @@ class MainWindow(QWidget): message.global_bridge.clear_messages.connect( self._messageview.clear_messages) - message_bridge.s_set_text.connect(self.status.set_text) - # statusbar self.tabbed_browser.current_tab_changed.connect( self.status.on_tab_changed) diff --git a/qutebrowser/mainwindow/statusbar/bar.py b/qutebrowser/mainwindow/statusbar/bar.py index 5309b9576..f0cf96efb 100644 --- a/qutebrowser/mainwindow/statusbar/bar.py +++ b/qutebrowser/mainwindow/statusbar/bar.py @@ -348,9 +348,10 @@ class StatusBar(QWidget): self.maybe_hide() @pyqtSlot(str) - def set_text(self, val): + def set_text(self, text): """Set a normal (persistent) text in the status bar.""" - self.txt.setText(val) + log.message.debug(text) + self.txt.setText(text) @pyqtSlot(usertypes.KeyMode) def on_mode_entered(self, mode): diff --git a/qutebrowser/utils/message.py b/qutebrowser/utils/message.py index 1aa9fbf1c..30ca517fe 100644 --- a/qutebrowser/utils/message.py +++ b/qutebrowser/utils/message.py @@ -27,7 +27,7 @@ import typing from PyQt5.QtCore import pyqtSignal, pyqtBoundSignal, QObject -from qutebrowser.utils import usertypes, log, utils +from qutebrowser.utils import usertypes, log def _log_stack(typ: str, stack: str) -> None: @@ -259,30 +259,4 @@ class GlobalMessageBridge(QObject): self._cache = [] -class MessageBridge(QObject): - - """Bridge for messages to be shown in the statusbar. - - Signals: - s_set_text: Set a persistent text in the statusbar. - arg: The text to set. - """ - - s_set_text = pyqtSignal(str) - - def __repr__(self) -> str: - return utils.get_repr(self) - - def set_text(self, text: str, *, log_stack: bool = False) -> None: - """Set the normal text of the statusbar. - - Args: - text: The text to set. - log_stack: ignored - """ - text = str(text) - log.message.debug(text) - self.s_set_text.emit(text) - - global_bridge = GlobalMessageBridge() diff --git a/tests/conftest.py b/tests/conftest.py index d4d06c6bc..ef169be4f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -34,7 +34,7 @@ pytest.register_assert_rewrite('helpers') from helpers import logfail from helpers.logfail import fail_on_logging -from helpers.messagemock import message_mock, message_bridge +from helpers.messagemock import message_mock from helpers.fixtures import * # noqa: F403 from helpers import utils as testutils from qutebrowser.utils import qtutils, standarddir, usertypes, utils, version diff --git a/tests/helpers/messagemock.py b/tests/helpers/messagemock.py index 4c1107029..03320a98f 100644 --- a/tests/helpers/messagemock.py +++ b/tests/helpers/messagemock.py @@ -24,7 +24,7 @@ import logging import attr import pytest -from qutebrowser.utils import usertypes, message, objreg +from qutebrowser.utils import usertypes, message @attr.s @@ -90,12 +90,3 @@ def message_mock(): mmock.patch() yield mmock mmock.unpatch() - - -@pytest.fixture -def message_bridge(win_registry): - """Fixture to get a MessageBridge.""" - bridge = message.MessageBridge() - objreg.register('message-bridge', bridge, scope='window', window=0) - yield bridge - objreg.delete('message-bridge', scope='window', window=0) diff --git a/tests/unit/browser/test_hints.py b/tests/unit/browser/test_hints.py index 56e5b980c..382c322fb 100644 --- a/tests/unit/browser/test_hints.py +++ b/tests/unit/browser/test_hints.py @@ -46,8 +46,7 @@ def tabbed_browser(tabbed_browser_stubs, web_tab): return tb -def test_show_benchmark(benchmark, tabbed_browser, qtbot, message_bridge, - mode_manager): +def test_show_benchmark(benchmark, tabbed_browser, qtbot, mode_manager): """Benchmark showing/drawing of hint labels.""" tab = tabbed_browser.widget.tabs[0] @@ -66,8 +65,8 @@ def test_show_benchmark(benchmark, tabbed_browser, qtbot, message_bridge, benchmark(bench) -def test_match_benchmark(benchmark, tabbed_browser, qtbot, message_bridge, - mode_manager, qapp, config_stub): +def test_match_benchmark(benchmark, tabbed_browser, qtbot, mode_manager, qapp, + config_stub): """Benchmark matching of hint labels.""" tab = tabbed_browser.widget.tabs[0]