summaryrefslogtreecommitdiff
path: root/qutebrowser/keyinput/modeman.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/keyinput/modeman.py')
-rw-r--r--qutebrowser/keyinput/modeman.py42
1 files changed, 20 insertions, 22 deletions
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py
index 671c2519e..86082ee87 100644
--- a/qutebrowser/keyinput/modeman.py
+++ b/qutebrowser/keyinput/modeman.py
@@ -23,9 +23,6 @@ import functools
import dataclasses
from typing import Mapping, Callable, MutableMapping, Union, Set, cast
-from qutebrowser.qt.core import pyqtSlot, pyqtSignal, Qt, QObject, QEvent
-from qutebrowser.qt.gui import QKeyEvent, QKeySequence
-
from qutebrowser.commands import runners
from qutebrowser.keyinput import modeparsers, basekeyparser
from qutebrowser.config import config
@@ -33,6 +30,7 @@ from qutebrowser.api import cmdutils
from qutebrowser.utils import usertypes, log, objreg, utils
from qutebrowser.browser import hints
from qutebrowser.misc import objects
+from qutebrowser.qt import gui, core
INPUT_MODES = [usertypes.KeyMode.insert, usertypes.KeyMode.passthrough]
PROMPT_MODES = [usertypes.KeyMode.prompt, usertypes.KeyMode.yesno]
@@ -61,7 +59,7 @@ class KeyEvent:
text: str
@classmethod
- def from_event(cls, event: QKeyEvent) -> 'KeyEvent':
+ def from_event(cls, event: gui.QKeyEvent) -> 'KeyEvent':
"""Initialize a KeyEvent from a QKeyEvent."""
return cls(event.key(), event.text())
@@ -79,7 +77,7 @@ class UnavailableError(Exception):
"""
-def init(win_id: int, parent: QObject) -> 'ModeManager':
+def init(win_id: int, parent: core.QObject) -> 'ModeManager':
"""Initialize the mode manager and the keyparsers for the given win_id."""
commandrunner = runners.CommandRunner(win_id)
@@ -227,7 +225,7 @@ def leave(win_id: int,
instance(win_id).leave(mode, reason, maybe=maybe)
-class ModeManager(QObject):
+class ModeManager(core.QObject):
"""Manager for keyboard modes.
@@ -256,11 +254,11 @@ class ModeManager(QObject):
arg 2: The new key string.
"""
- entered = pyqtSignal(usertypes.KeyMode, int)
- left = pyqtSignal(usertypes.KeyMode, usertypes.KeyMode, int)
- keystring_updated = pyqtSignal(usertypes.KeyMode, str)
+ entered = core.pyqtSignal(usertypes.KeyMode, int)
+ left = core.pyqtSignal(usertypes.KeyMode, usertypes.KeyMode, int)
+ keystring_updated = core.pyqtSignal(usertypes.KeyMode, str)
- def __init__(self, win_id: int, parent: QObject = None) -> None:
+ def __init__(self, win_id: int, parent: core.QObject = None) -> None:
super().__init__(parent)
self._win_id = win_id
self.parsers: ParserDictType = {}
@@ -273,7 +271,7 @@ class ModeManager(QObject):
def __repr__(self) -> str:
return utils.get_repr(self, mode=self.mode)
- def _handle_keypress(self, event: QKeyEvent, *,
+ def _handle_keypress(self, event: gui.QKeyEvent, *,
dry_run: bool = False) -> bool:
"""Handle filtering of KeyPress events.
@@ -292,14 +290,14 @@ class ModeManager(QObject):
match = parser.handle(event, dry_run=dry_run)
has_modifier = event.modifiers() not in [
- Qt.KeyboardModifier.NoModifier,
- Qt.KeyboardModifier.ShiftModifier,
+ core.Qt.KeyboardModifier.NoModifier,
+ core.Qt.KeyboardModifier.ShiftModifier,
] # type: ignore[comparison-overlap]
is_non_alnum = has_modifier or not event.text().strip()
forward_unbound_keys = config.cache['input.forward_unbound_keys']
- if match != QKeySequence.SequenceMatch.NoMatch:
+ if match != gui.QKeySequence.SequenceMatch.NoMatch:
filter_this = True
elif (parser.passthrough or forward_unbound_keys == 'all' or
(forward_unbound_keys == 'auto' and is_non_alnum)):
@@ -320,7 +318,7 @@ class ModeManager(QObject):
filter_this, focus_widget))
return filter_this
- def _handle_keyrelease(self, event: QKeyEvent) -> bool:
+ def _handle_keyrelease(self, event: gui.QKeyEvent) -> bool:
"""Handle filtering of KeyRelease events.
Args:
@@ -411,7 +409,7 @@ class ModeManager(QObject):
self.enter(m, 'command')
- @pyqtSlot(usertypes.KeyMode, str, bool)
+ @core.pyqtSlot(usertypes.KeyMode, str, bool)
def leave(self, mode: usertypes.KeyMode,
reason: str = None,
maybe: bool = False) -> None:
@@ -450,7 +448,7 @@ class ModeManager(QObject):
raise ValueError("Can't leave normal mode!")
self.leave(self.mode, 'leave current')
- def handle_event(self, event: QEvent) -> bool:
+ def handle_event(self, event: core.QEvent) -> bool:
"""Filter all events based on the currently set mode.
Also calls the real keypress handler.
@@ -461,14 +459,14 @@ class ModeManager(QObject):
Return:
True if event should be filtered, False otherwise.
"""
- handlers: Mapping[QEvent.Type, Callable[[QKeyEvent], bool]] = {
- QEvent.Type.KeyPress: self._handle_keypress,
- QEvent.Type.KeyRelease: self._handle_keyrelease,
- QEvent.Type.ShortcutOverride:
+ handlers: Mapping[core.QEvent.Type, Callable[[gui.QKeyEvent], bool]] = {
+ core.QEvent.Type.KeyPress: self._handle_keypress,
+ core.QEvent.Type.KeyRelease: self._handle_keyrelease,
+ core.QEvent.Type.ShortcutOverride:
functools.partial(self._handle_keypress, dry_run=True),
}
handler = handlers[event.type()]
- return handler(cast(QKeyEvent, event))
+ return handler(cast(gui.QKeyEvent, event))
@cmdutils.register(instance='mode-manager', scope='window')
def clear_keychain(self) -> None: