From 74be2fa4b98526e360662d5583ea517895b31000 Mon Sep 17 00:00:00 2001 From: pkill9 Date: Sun, 5 Mar 2017 07:26:13 +0000 Subject: [PATCH] Add command to close all messages. --- qutebrowser/mainwindow/mainwindow.py | 2 ++ qutebrowser/mainwindow/messageview.py | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py index 732b7a688..8038663e1 100644 --- a/qutebrowser/mainwindow/mainwindow.py +++ b/qutebrowser/mainwindow/mainwindow.py @@ -185,6 +185,8 @@ class MainWindow(QWidget): self._keyhint = keyhintwidget.KeyHintView(self.win_id, self) self._add_overlay(self._keyhint, self._keyhint.update_geometry) self._messageview = messageview.MessageView(parent=self) + objreg.register('messageview', self._messageview, + scope='window', window=self.win_id) self._add_overlay(self._messageview, self._messageview.update_geometry) self._prompt_container = prompt.PromptContainer(self.win_id, self) diff --git a/qutebrowser/mainwindow/messageview.py b/qutebrowser/mainwindow/messageview.py index 86178716f..dfcdaa540 100644 --- a/qutebrowser/mainwindow/messageview.py +++ b/qutebrowser/mainwindow/messageview.py @@ -25,6 +25,7 @@ from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QSizePolicy from qutebrowser.config import config, style from qutebrowser.utils import usertypes, objreg +from qutebrowser.commands import cmdutils class Message(QLabel): @@ -82,7 +83,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 +102,8 @@ class MessageView(QWidget): self._clear_timer.setInterval(config.get('ui', 'message-timeout')) @pyqtSlot() - def _clear_messages(self): + @cmdutils.register(instance='messageview', scope="window", hide=True) + def clear_messages(self): """Hide and delete all messages.""" for widget in self._messages: self._vbox.removeWidget(widget)