diff options
Diffstat (limited to 'qutebrowser/keyinput/keyutils.py')
-rw-r--r-- | qutebrowser/keyinput/keyutils.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/qutebrowser/keyinput/keyutils.py b/qutebrowser/keyinput/keyutils.py index 70898ceb2..8d4de6035 100644 --- a/qutebrowser/keyinput/keyutils.py +++ b/qutebrowser/keyinput/keyutils.py @@ -34,12 +34,13 @@ handle what we actually think we do. import itertools import dataclasses from typing import Iterator, List, Mapping, Optional, Union, overload -try: - from qutebrowser.qt import gui, core -except ImportError: - QKeyCombination = None # Qt 6 only from qutebrowser.utils import utils, qtutils, debug +from qutebrowser.qt import gui, core + +QKeyCombination = None # Qt 6 only +if hasattr(core, 'QKeyCombination'): + QKeyCombination = core.QKeyCombination class InvalidKeyError(Exception): @@ -377,7 +378,7 @@ class KeyInfo: return cls(key, modifiers) @classmethod - def from_qt(cls, combination: Union[int, core.QKeyCombination]) -> 'KeyInfo': + def from_qt(cls, combination: Union[int, QKeyCombination]) -> 'KeyInfo': """Construct a KeyInfo from a Qt5-style int or Qt6-style QKeyCombination.""" if isinstance(combination, int): key = core.Qt.Key( @@ -387,7 +388,7 @@ class KeyInfo: return cls(key, modifiers) else: # QKeyCombination is now guaranteed to be available here - assert isinstance(combination, core.QKeyCombination) + assert isinstance(combination, QKeyCombination) try: key = combination.key() except ValueError as e: @@ -458,9 +459,9 @@ class KeyInfo: """Get a QKeyEvent from this KeyInfo.""" return gui.QKeyEvent(typ, self.key, self.modifiers, self.text()) - def to_qt(self) -> Union[int, core.QKeyCombination]: + def to_qt(self) -> Union[int, QKeyCombination]: """Get something suitable for a QKeySequence.""" - if core.QKeyCombination is None: + if QKeyCombination is None: # Qt 5 return int(self.key) | int(self.modifiers) @@ -473,7 +474,7 @@ class KeyInfo: # https://www.riverbankcomputing.com/pipermail/pyqt/2022-April/044607.html raise InvalidKeyError(e) - return core.QKeyCombination(self.modifiers, key) + return QKeyCombination(self.modifiers, key) def with_stripped_modifiers(self, modifiers: core.Qt.KeyboardModifier) -> "KeyInfo": return KeyInfo(key=self.key, modifiers=self.modifiers & ~modifiers) |