diff options
author | Marc Jauvin <marc.jauvin@gmail.com> | 2018-03-13 23:31:48 -0400 |
---|---|---|
committer | Marc Jauvin <marc.jauvin@gmail.com> | 2018-03-13 23:31:48 -0400 |
commit | c9f6cd507b55dabe4d4d8f7841955837a634ff20 (patch) | |
tree | fe78fa6ad1687fefffe035fbbf9333c072ad7643 /qutebrowser | |
parent | 7c2802e84312904f83e24e2ef336d3731e863bde (diff) | |
download | qutebrowser-c9f6cd507b55dabe4d4d8f7841955837a634ff20.tar.gz qutebrowser-c9f6cd507b55dabe4d4d8f7841955837a634ff20.zip |
address requested changes
- add INPUT_MODES & PROMPT_MODES constants in modeman
- use those in tabbedbrowser and modeman
- fix debug logs format to be more human readable
- fix associated tests for new debug logs
Diffstat (limited to 'qutebrowser')
-rw-r--r-- | qutebrowser/keyinput/modeman.py | 16 | ||||
-rw-r--r-- | qutebrowser/mainwindow/tabbedbrowser.py | 34 |
2 files changed, 23 insertions, 27 deletions
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py index 3f706d43c..4e9d78fb0 100644 --- a/qutebrowser/keyinput/modeman.py +++ b/qutebrowser/keyinput/modeman.py @@ -30,6 +30,9 @@ from qutebrowser.config import config from qutebrowser.commands import cmdexc, cmdutils from qutebrowser.utils import usertypes, log, objreg, utils +INPUT_MODES = [usertypes.KeyMode.insert, usertypes.KeyMode.passthrough] +PROMPT_MODES = [usertypes.KeyMode.prompt, usertypes.KeyMode.yesno] + @attr.s(frozen=True) class KeyEvent: @@ -115,7 +118,7 @@ class ModeManager(QObject): Attributes: mode: The mode we're currently in. _win_id: The window ID of this ModeManager - _prev_mode: mode before a prompt poped up + _prev_mode: Mode before a prompt popped up _parsers: A dictionary of modes and their keyparsers. _forward_unbound_keys: If we should forward unbound keys. _releaseevents_to_pass: A set of KeyEvents where the keyPressEvent was @@ -235,10 +238,8 @@ class ModeManager(QObject): mode, '' if reason is None else ' (reason: {})'.format(reason))) if mode not in self._parsers: raise ValueError("No keyparser for mode {}".format(mode)) - prompt_modes = (usertypes.KeyMode.prompt, usertypes.KeyMode.yesno) - input_modes = [usertypes.KeyMode.insert, usertypes.KeyMode.passthrough] - if self.mode == mode or (self.mode in prompt_modes and - mode in prompt_modes): + if self.mode == mode or (self.mode in PROMPT_MODES and + mode in PROMPT_MODES): log.modes.debug("Ignoring request as we're in mode {} " "already.".format(self.mode)) return @@ -250,9 +251,8 @@ class ModeManager(QObject): return log.modes.debug("Overriding mode {}.".format(self.mode)) self.left.emit(self.mode, mode, self._win_id) - if (mode in prompt_modes and self.mode in input_modes and + if (mode in PROMPT_MODES and self.mode in INPUT_MODES and config.val.tabs.mode_on_change == 'restore'): - # save previous mode when being prompted self._prev_mode = self.mode else: self._prev_mode = usertypes.KeyMode.normal @@ -303,7 +303,7 @@ class ModeManager(QObject): self.clear_keychain() self.mode = usertypes.KeyMode.normal self.left.emit(mode, self.mode, self._win_id) - if mode in [usertypes.KeyMode.prompt, usertypes.KeyMode.yesno]: + if mode in PROMPT_MODES: self.enter(self._prev_mode, reason='restore mode before {}'.format(mode.name)) diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index 7914aca63..df5ab5584 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -634,8 +634,8 @@ class TabbedBrowser(tabwidget.TabWidget): @pyqtSlot(usertypes.KeyMode) def on_mode_entered(self, mode): """Save input mode when tabs.mode_on_change = restore.""" - input_modes = [usertypes.KeyMode.insert, usertypes.KeyMode.passthrough] - if mode in input_modes and config.val.tabs.mode_on_change == 'restore': + if (config.val.tabs.mode_on_change == 'restore' and + mode in modeman.INPUT_MODES): tab = self.currentWidget() if tab is not None: tab.data.input_mode = mode @@ -643,18 +643,15 @@ class TabbedBrowser(tabwidget.TabWidget): @pyqtSlot(usertypes.KeyMode) def on_mode_left(self, mode): """Give focus to current tab if command mode was left.""" - if mode in [usertypes.KeyMode.command, usertypes.KeyMode.prompt, - usertypes.KeyMode.yesno]: - widget = self.currentWidget() + widget = self.currentWidget() + if widget is None: + return + if mode in [usertypes.KeyMode.command] + modeman.PROMPT_MODES: log.modes.debug("Left status-input mode, focusing {!r}".format( widget)) - if widget is None: - return widget.setFocus() - elif config.val.tabs.mode_on_change == 'restore': - tab = self.currentWidget() - if tab is not None: - tab.data.input_mode = usertypes.KeyMode.normal + if config.val.tabs.mode_on_change == 'restore': + widget.data.input_mode = usertypes.KeyMode.normal @pyqtSlot(int) def on_current_changed(self, idx): @@ -672,25 +669,24 @@ class TabbedBrowser(tabwidget.TabWidget): log.modes.debug("Current tab changed, focusing {!r}".format(tab)) tab.setFocus() - prompt_modes = [usertypes.KeyMode.prompt, usertypes.KeyMode.yesno] modes_to_leave = [usertypes.KeyMode.hint, usertypes.KeyMode.caret] mm_instance = modeman.instance(self._win_id) current_mode = mm_instance.mode - log.modes.debug("{}: mode before tab change: {}." - .format(mode_on_change, current_mode.name)) + log.modes.debug("Mode before tab change: {} (mode_on_change = {})" + .format(current_mode.name, mode_on_change)) if mode_on_change == 'normal': - modes_to_leave += [usertypes.KeyMode.insert, - usertypes.KeyMode.passthrough] + modes_to_leave += modeman.INPUT_MODES for mode in modes_to_leave: modeman.leave(self._win_id, mode, 'tab changed', maybe=True) - if mode_on_change == 'restore' and current_mode not in prompt_modes: + if (mode_on_change == 'restore' and + current_mode not in modeman.PROMPT_MODES): modeman.enter(self._win_id, tab.data.input_mode, 'restore') if self._now_focused is not None: objreg.register('last-focused-tab', self._now_focused, update=True, scope='window', window=self._win_id) - log.modes.debug("{}: mode after tab change: {}." - .format(mode_on_change, mm_instance.mode.name)) + log.modes.debug("Mode after tab change: {} (mode_on_change = {})" + .format(current_mode.name, mode_on_change)) self._now_focused = tab self.current_tab_changed.emit(tab) QTimer.singleShot(0, self._update_window_title) |