From bbd842bd82b261871cac9d931e3335ba69c06afd Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 10 Nov 2016 07:19:45 +0100 Subject: [PATCH] Get rid of modeman.maybe_leave --- qutebrowser/browser/commands.py | 4 ++-- qutebrowser/browser/hints.py | 7 ++++--- qutebrowser/browser/mouse.py | 10 ++++------ qutebrowser/keyinput/modeman.py | 13 ++----------- qutebrowser/mainwindow/prompt.py | 8 ++++---- qutebrowser/mainwindow/tabbedbrowser.py | 10 +++++----- 6 files changed, 21 insertions(+), 31 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index a100a28cd..b4e3e5507 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -742,8 +742,8 @@ class CommandDispatcher: message.info("{} {} yanked to {}".format( len(s), "char" if len(s) == 1 else "chars", target)) if not keep: - modeman.maybe_leave(self._win_id, KeyMode.caret, - "yank selected") + modeman.leave(self._win_id, KeyMode.caret, "yank selected", + maybe=True) @cmdutils.register(instance='command-dispatcher', scope='window') @cmdutils.argument('count', count=True) diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index 136b769b6..f28f25b29 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -50,7 +50,8 @@ class HintingError(Exception): def on_mode_entered(mode, win_id): """Stop hinting when insert mode was entered.""" if mode == usertypes.KeyMode.insert: - modeman.maybe_leave(win_id, usertypes.KeyMode.hint, 'insert mode') + modeman.leave(win_id, usertypes.KeyMode.hint, 'insert mode', + maybe=True) class HintLabel(QLabel): @@ -859,8 +860,8 @@ class HintManager(QObject): raise ValueError("No suitable handler found!") if not self._context.rapid: - modeman.maybe_leave(self._win_id, usertypes.KeyMode.hint, - 'followed') + modeman.leave(self._win_id, usertypes.KeyMode.hint, 'followed', + maybe=True) else: # Reset filtering self.filter_hints(None) diff --git a/qutebrowser/browser/mouse.py b/qutebrowser/browser/mouse.py index aaa5dd82f..3855a853f 100644 --- a/qutebrowser/browser/mouse.py +++ b/qutebrowser/browser/mouse.py @@ -151,9 +151,8 @@ class MouseEventFilter(QObject): else: log.mouse.debug("Clicked non-editable element!") if config.get('input', 'auto-leave-insert-mode'): - modeman.maybe_leave(self._tab.win_id, - usertypes.KeyMode.insert, - 'click') + modeman.leave(self._tab.win_id, usertypes.KeyMode.insert, + 'click', maybe=True) def _mouserelease_insertmode(self): """If we have an insertmode check scheduled, handle it.""" @@ -174,9 +173,8 @@ class MouseEventFilter(QObject): else: log.mouse.debug("Clicked non-editable element (delayed)!") if config.get('input', 'auto-leave-insert-mode'): - modeman.maybe_leave(self._tab.win_id, - usertypes.KeyMode.insert, - 'click-delayed') + modeman.leave(self._tab.win_id, usertypes.KeyMode.insert, + 'click-delayed', maybe=True) self._tab.elements.find_focused(mouserelease_insertmode_cb) diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py index d541072ce..d86b4996f 100644 --- a/qutebrowser/keyinput/modeman.py +++ b/qutebrowser/keyinput/modeman.py @@ -106,18 +106,9 @@ def enter(win_id, mode, reason=None, only_if_normal=False): instance(win_id).enter(mode, reason, only_if_normal) -def leave(win_id, mode, reason=None): +def leave(win_id, mode, reason=None, *, maybe=False): """Leave the mode 'mode'.""" - instance(win_id).leave(mode, reason) - - -def maybe_leave(win_id, mode, reason=None): - """Convenience method to leave 'mode' without exceptions.""" - try: - instance(win_id).leave(mode, reason) - except NotInModeError as e: - # This is rather likely to happen, so we only log to debug log. - log.modes.debug("{} (leave reason: {})".format(e, reason)) + instance(win_id).leave(mode, reason, maybe=maybe) class ModeManager(QObject): diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index f5ed10009..6e2ab68d6 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -314,8 +314,8 @@ class PromptContainer(QWidget): if not question.interrupted: # If this question was interrupted, we already connected the signal question.aborted.connect( - lambda: modeman.maybe_leave(self._win_id, prompt.KEY_MODE, - 'aborted')) + lambda: modeman.leave(self._win_id, prompt.KEY_MODE, 'aborted', + maybe=True)) modeman.enter(self._win_id, prompt.KEY_MODE, 'question asked') self.setSizePolicy(prompt.sizePolicy()) @@ -328,7 +328,7 @@ class PromptContainer(QWidget): @pyqtSlot(usertypes.KeyMode) def _on_prompt_done(self, key_mode): """Leave the prompt mode in this window if a question was answered.""" - modeman.maybe_leave(self._win_id, key_mode, ':prompt-accept') + modeman.leave(self._win_id, key_mode, ':prompt-accept', maybe=True) @pyqtSlot(usertypes.KeyMode) def _on_global_mode_left(self, mode): @@ -339,7 +339,7 @@ class PromptContainer(QWidget): """ if mode not in [usertypes.KeyMode.prompt, usertypes.KeyMode.yesno]: return - modeman.maybe_leave(self._win_id, mode, 'left in other window') + modeman.leave(self._win_id, mode, 'left in other window', maybe=True) item = self._layout.takeAt(0) if item is not None: widget = item.widget() diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py index 083054769..13b4f1884 100644 --- a/qutebrowser/mainwindow/tabbedbrowser.py +++ b/qutebrowser/mainwindow/tabbedbrowser.py @@ -473,10 +473,10 @@ class TabbedBrowser(tabwidget.TabWidget): @pyqtSlot() def on_cur_load_started(self): """Leave insert/hint mode when loading started.""" - modeman.maybe_leave(self._win_id, usertypes.KeyMode.insert, - 'load started') - modeman.maybe_leave(self._win_id, usertypes.KeyMode.hint, - 'load started') + modeman.leave(self._win_id, usertypes.KeyMode.insert, 'load started', + maybe=True) + modeman.leave(self._win_id, usertypes.KeyMode.hint, 'load started', + maybe=True) @pyqtSlot(browsertab.AbstractTab, str) def on_title_changed(self, tab, text): @@ -567,7 +567,7 @@ class TabbedBrowser(tabwidget.TabWidget): tab.setFocus() for mode in [usertypes.KeyMode.hint, usertypes.KeyMode.insert, usertypes.KeyMode.caret, usertypes.KeyMode.passthrough]: - modeman.maybe_leave(self._win_id, mode, 'tab changed') + modeman.leave(self._win_id, mode, 'tab changed', maybe=True) if self._now_focused is not None: objreg.register('last-focused-tab', self._now_focused, update=True, scope='window', window=self._win_id)