From a70954a65f6ed86a5fa0146078ed4dfff1cffc00 Mon Sep 17 00:00:00 2001 From: toofar Date: Sun, 11 Sep 2022 11:50:25 +1200 Subject: mypy: fix KeyboardModifier type in webelem? Conditionally define a type so it can work with PyQt5s mismatch of enums and flags and PyQt6s enums. --- qutebrowser/browser/webelem.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/qutebrowser/browser/webelem.py b/qutebrowser/browser/webelem.py index a734f15b8..91e82ae0c 100644 --- a/qutebrowser/browser/webelem.py +++ b/qutebrowser/browser/webelem.py @@ -22,6 +22,7 @@ from typing import Iterator, Optional, Set, TYPE_CHECKING, Union, Dict import collections.abc +from qutebrowser.qt import machinery from qutebrowser.qt.core import QUrl, Qt, QEvent, QTimer, QRect, QPointF from qutebrowser.qt.gui import QMouseEvent @@ -35,6 +36,11 @@ if TYPE_CHECKING: JsValueType = Union[int, float, str, None] +if machinery.IS_QT6: + KeybordModifierType = Qt.KeyboardModifier +else: + KeybordModifierType = Union[Qt.KeyboardModifiers, Qt.KeyboardModifier] + class Error(Exception): @@ -345,7 +351,7 @@ class AbstractWebElement(collections.abc.MutableMapping): # type: ignore[type-a log.webelem.debug("Sending fake click to {!r} at position {} with " "target {}".format(self, pos, click_target)) - target_modifiers: Dict[usertypes.ClickTarget, Qt.KeyboardModifier] = { + target_modifiers: Dict[usertypes.ClickTarget, KeybordModifierType] = { usertypes.ClickTarget.normal: Qt.KeyboardModifier.NoModifier, usertypes.ClickTarget.window: Qt.KeyboardModifier.AltModifier | Qt.KeyboardModifier.ShiftModifier, usertypes.ClickTarget.tab: Qt.KeyboardModifier.ControlModifier, -- cgit v1.2.3-54-g00ecf