parent
1d7f704804
commit
d611a37d7d
@ -159,11 +159,12 @@ class ModeManager(QObject):
|
||||
arg2: The window ID of this mode manager.
|
||||
left: Emitted when a mode is left.
|
||||
arg1: The mode which has been left.
|
||||
arg2: The window ID of this mode manager.
|
||||
arg2: The new current mode.
|
||||
arg3: The window ID of this mode manager.
|
||||
"""
|
||||
|
||||
entered = pyqtSignal(usertypes.KeyMode, int)
|
||||
left = pyqtSignal(usertypes.KeyMode, int)
|
||||
left = pyqtSignal(usertypes.KeyMode, usertypes.KeyMode, int)
|
||||
|
||||
def __init__(self, win_id, parent=None):
|
||||
super().__init__(parent)
|
||||
@ -321,7 +322,7 @@ class ModeManager(QObject):
|
||||
log.modes.debug("Leaving mode {}{}, new mode stack {}".format(
|
||||
mode, '' if reason is None else ' (reason: {})'.format(reason),
|
||||
self.mode_stack))
|
||||
self.left.emit(mode, self._win_id)
|
||||
self.left.emit(mode, self.mode(), self._win_id)
|
||||
|
||||
@cmdutils.register(instance='mode-manager', name='leave-mode',
|
||||
not_modes=[usertypes.KeyMode.normal], hide=True,
|
||||
|
@ -235,6 +235,11 @@ class StatusBar(QWidget):
|
||||
self._insert_active = val
|
||||
self.setStyleSheet(style.get_stylesheet(self.STYLESHEET))
|
||||
|
||||
def _set_mode_text(self, mode):
|
||||
"""Set the mode text."""
|
||||
text = "-- {} MODE --".format(mode.upper())
|
||||
self.txt.set_text(self.txt.Text.normal, text)
|
||||
|
||||
def _pop_text(self):
|
||||
"""Display a text in the statusbar and pop it from _text_queue."""
|
||||
try:
|
||||
@ -386,19 +391,21 @@ class StatusBar(QWidget):
|
||||
mode_manager = objreg.get('mode-manager', scope='window',
|
||||
window=self._win_id)
|
||||
if mode in mode_manager.passthrough:
|
||||
text = "-- {} MODE --".format(mode.name.upper())
|
||||
self.txt.set_text(self.txt.Text.normal, text)
|
||||
self._set_mode_text(mode.name)
|
||||
if mode == usertypes.KeyMode.insert:
|
||||
self._set_insert_active(True)
|
||||
|
||||
@pyqtSlot(usertypes.KeyMode)
|
||||
def on_mode_left(self, mode):
|
||||
@pyqtSlot(usertypes.KeyMode, usertypes.KeyMode)
|
||||
def on_mode_left(self, old_mode, new_mode):
|
||||
"""Clear marked mode."""
|
||||
mode_manager = objreg.get('mode-manager', scope='window',
|
||||
window=self._win_id)
|
||||
if mode in mode_manager.passthrough:
|
||||
self.txt.set_text(self.txt.Text.normal, '')
|
||||
if mode == usertypes.KeyMode.insert:
|
||||
if old_mode in mode_manager.passthrough:
|
||||
if new_mode in mode_manager.passthrough:
|
||||
self._set_mode_text(new_mode.name)
|
||||
else:
|
||||
self.txt.set_text(self.txt.Text.normal, '')
|
||||
if old_mode == usertypes.KeyMode.insert:
|
||||
self._set_insert_active(False)
|
||||
|
||||
@config.change_filter('ui', 'message-timeout')
|
||||
|
Loading…
Reference in New Issue
Block a user