summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/keyinput/keyutils.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/qutebrowser/keyinput/keyutils.py b/qutebrowser/keyinput/keyutils.py
index f91936257..3af103607 100644
--- a/qutebrowser/keyinput/keyutils.py
+++ b/qutebrowser/keyinput/keyutils.py
@@ -33,7 +33,7 @@ handle what we actually think we do.
import itertools
import dataclasses
-from typing import Iterator, List, Mapping, Optional, Union, overload
+from typing import Iterator, List, Mapping, Optional, Union, overload, cast
from qutebrowser.qt.core import Qt, QEvent
from qutebrowser.qt.gui import QKeySequence, QKeyEvent
@@ -69,7 +69,7 @@ try:
except ValueError:
# WORKAROUND for
# https://www.riverbankcomputing.com/pipermail/pyqt/2022-April/044607.html
- _NIL_KEY = 0
+ _NIL_KEY = 0 # type: ignore[assignment]
_ModifierType = Qt.KeyboardModifier
@@ -252,7 +252,7 @@ def _modifiers_to_string(modifiers: _ModifierType) -> str:
_assert_plain_modifier(modifiers)
altgr = Qt.KeyboardModifier.GroupSwitchModifier
if modifiers & altgr:
- modifiers &= ~altgr
+ modifiers &= ~altgr # type: ignore[assignment]
result = 'AltGr+'
else:
result = ''
@@ -376,7 +376,7 @@ class KeyInfo:
except ValueError as ex:
raise InvalidKeyError(str(ex))
key = _remap_unicode(key, e.text())
- modifiers = e.modifiers()
+ modifiers = cast(Qt.KeyboardModifier, e.modifiers())
return cls(key, modifiers)
@classmethod
@@ -411,7 +411,7 @@ class KeyInfo:
if self.key in _MODIFIER_MAP:
# Don't return e.g. <Shift+Shift>
- modifiers &= ~_MODIFIER_MAP[self.key]
+ modifiers &= ~_MODIFIER_MAP[self.key] # type: ignore[assignment]
elif _is_printable(self.key):
# "normal" binding
if not key_string: # pragma: no cover
@@ -479,7 +479,8 @@ class KeyInfo:
return QKeyCombination(self.modifiers, key)
def with_stripped_modifiers(self, modifiers: Qt.KeyboardModifier) -> "KeyInfo":
- return KeyInfo(key=self.key, modifiers=self.modifiers & ~modifiers)
+ mods = self.modifiers & ~modifiers
+ return KeyInfo(key=self.key, modifiers=mods) # type: ignore[arg-type]
def is_special(self) -> bool:
"""Check whether this key requires special key syntax."""
@@ -648,7 +649,7 @@ class KeySequence:
raise KeyParseError(None, f"Got invalid key: {e}")
_assert_plain_key(key)
- _assert_plain_modifier(ev.modifiers())
+ _assert_plain_modifier(cast(Qt.KeyboardModifier, ev.modifiers()))
key = _remap_unicode(key, ev.text())
modifiers = ev.modifiers()
@@ -675,10 +676,11 @@ class KeySequence:
#
# In addition, Shift also *is* relevant when other modifiers are
# involved. Shift-Ctrl-X should not be equivalent to Ctrl-X.
- if (modifiers == Qt.KeyboardModifier.ShiftModifier and
+ shift_modifier = Qt.KeyboardModifier.ShiftModifier
+ if (modifiers == shift_modifier and # type: ignore[comparison-overlap]
_is_printable(key) and
not ev.text().isupper()):
- modifiers = Qt.KeyboardModifier.NoModifier
+ modifiers = Qt.KeyboardModifier.NoModifier # type: ignore[assignment]
# On macOS, swap Ctrl and Meta back
#
@@ -697,7 +699,7 @@ class KeySequence:
modifiers |= Qt.KeyboardModifier.ControlModifier
infos = list(self)
- infos.append(KeyInfo(key, modifiers))
+ infos.append(KeyInfo(key, cast(Qt.KeyboardModifier, modifiers)))
return self.__class__(*infos)