diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index 732b7a688..9858abf7d 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -438,6 +438,8 @@ class MainWindow(QWidget): message.global_bridge.show_message.connect( self._messageview.show_message) message.global_bridge.flush() + message.global_bridge.clear_messages.connect( + self._messageview.clear_messages) message_bridge.s_set_text.connect(status.set_text) message_bridge.s_maybe_reset_text.connect(status.txt.maybe_reset_text) diff --git a/qutebrowser/mainwindow/messageview.py b/qutebrowser/mainwindow/messageview.py index 86178716f..6565a2a44 100644 --- a/qutebrowser/mainwindow/messageview.py +++ b/qutebrowser/mainwindow/messageview.py @@ -82,7 +82,7 @@ class MessageView(QWidget): self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) self._clear_timer = QTimer() - self._clear_timer.timeout.connect(self._clear_messages) + self._clear_timer.timeout.connect(self.clear_messages) self._set_clear_timer_interval() objreg.get('config').changed.connect(self._set_clear_timer_interval) @@ -101,7 +101,7 @@ class MessageView(QWidget): self._clear_timer.setInterval(config.get('ui', 'message-timeout')) @pyqtSlot() - def _clear_messages(self): + def clear_messages(self): """Hide and delete all messages.""" for widget in self._messages: self._vbox.removeWidget(widget) diff --git a/qutebrowser/misc/utilcmds.py b/qutebrowser/misc/utilcmds.py index 893e11342..e617c1af2 100644 --- a/qutebrowser/misc/utilcmds.py +++ b/qutebrowser/misc/utilcmds.py @@ -137,6 +137,12 @@ def message_warning(text): message.warning(text) +@cmdutils.register(hide=True) +def clear_messages(): + """Clear all message notifications.""" + message.global_bridge.clear_messages.emit() + + @cmdutils.register(debug=True) @cmdutils.argument('typ', choices=['exception', 'segfault']) def debug_crash(typ='exception'): diff --git a/qutebrowser/utils/message.py b/qutebrowser/utils/message.py index b39e2ab49..bb758d78a 100644 --- a/qutebrowser/utils/message.py +++ b/qutebrowser/utils/message.py @@ -194,6 +194,7 @@ class GlobalMessageBridge(QObject): prompt_done = pyqtSignal(usertypes.KeyMode) ask_question = pyqtSignal(usertypes.Question, bool) mode_left = pyqtSignal(usertypes.KeyMode) + clear_messages = pyqtSignal() def __init__(self, parent=None): super().__init__(parent)