Get rid of GlobalMessageBridge

After f16b96aa28, 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.
This commit is contained in:
Florian Bruhin 2020-10-16 16:26:11 +02:00
parent 72c6472b9a
commit 77e8eb270e
7 changed files with 14 additions and 61 deletions

View File

@ -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])

View File

@ -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)

View File

@ -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):

View File

@ -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()

View File

@ -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

View File

@ -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)

View File

@ -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]