Add command to clear messages - cleaner

This commit is contained in:
pkill9 2017-03-07 16:40:05 +00:00
parent 74be2fa4b9
commit d3b16bbd07
4 changed files with 9 additions and 4 deletions

View File

@ -185,8 +185,6 @@ class MainWindow(QWidget):
self._keyhint = keyhintwidget.KeyHintView(self.win_id, self) self._keyhint = keyhintwidget.KeyHintView(self.win_id, self)
self._add_overlay(self._keyhint, self._keyhint.update_geometry) self._add_overlay(self._keyhint, self._keyhint.update_geometry)
self._messageview = messageview.MessageView(parent=self) 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._add_overlay(self._messageview, self._messageview.update_geometry)
self._prompt_container = prompt.PromptContainer(self.win_id, self) self._prompt_container = prompt.PromptContainer(self.win_id, self)
@ -440,6 +438,8 @@ class MainWindow(QWidget):
message.global_bridge.show_message.connect( message.global_bridge.show_message.connect(
self._messageview.show_message) self._messageview.show_message)
message.global_bridge.flush() 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_set_text.connect(status.set_text)
message_bridge.s_maybe_reset_text.connect(status.txt.maybe_reset_text) message_bridge.s_maybe_reset_text.connect(status.txt.maybe_reset_text)

View File

@ -25,7 +25,6 @@ from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QSizePolicy
from qutebrowser.config import config, style from qutebrowser.config import config, style
from qutebrowser.utils import usertypes, objreg from qutebrowser.utils import usertypes, objreg
from qutebrowser.commands import cmdutils
class Message(QLabel): class Message(QLabel):
@ -102,7 +101,6 @@ class MessageView(QWidget):
self._clear_timer.setInterval(config.get('ui', 'message-timeout')) self._clear_timer.setInterval(config.get('ui', 'message-timeout'))
@pyqtSlot() @pyqtSlot()
@cmdutils.register(instance='messageview', scope="window", hide=True)
def clear_messages(self): def clear_messages(self):
"""Hide and delete all messages.""" """Hide and delete all messages."""
for widget in self._messages: for widget in self._messages:

View File

@ -137,6 +137,12 @@ def message_warning(text):
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.register(debug=True)
@cmdutils.argument('typ', choices=['exception', 'segfault']) @cmdutils.argument('typ', choices=['exception', 'segfault'])
def debug_crash(typ='exception'): def debug_crash(typ='exception'):

View File

@ -194,6 +194,7 @@ class GlobalMessageBridge(QObject):
prompt_done = pyqtSignal(usertypes.KeyMode) prompt_done = pyqtSignal(usertypes.KeyMode)
ask_question = pyqtSignal(usertypes.Question, bool) ask_question = pyqtSignal(usertypes.Question, bool)
mode_left = pyqtSignal(usertypes.KeyMode) mode_left = pyqtSignal(usertypes.KeyMode)
clear_messages = pyqtSignal()
def __init__(self, parent=None): def __init__(self, parent=None):
super().__init__(parent) super().__init__(parent)