summaryrefslogtreecommitdiff
path: root/qutebrowser
diff options
context:
space:
mode:
authorMarc Jauvin <marc.jauvin@gmail.com>2018-03-13 23:31:48 -0400
committerMarc Jauvin <marc.jauvin@gmail.com>2018-03-13 23:31:48 -0400
commitc9f6cd507b55dabe4d4d8f7841955837a634ff20 (patch)
treefe78fa6ad1687fefffe035fbbf9333c072ad7643 /qutebrowser
parent7c2802e84312904f83e24e2ef336d3731e863bde (diff)
downloadqutebrowser-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.py16
-rw-r--r--qutebrowser/mainwindow/tabbedbrowser.py34
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)