aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6/support/deprecated.py
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/PySide6/support/deprecated.py')
-rw-r--r--sources/pyside6/PySide6/support/deprecated.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/sources/pyside6/PySide6/support/deprecated.py b/sources/pyside6/PySide6/support/deprecated.py
index 272e01967..f215f2ff5 100644
--- a/sources/pyside6/PySide6/support/deprecated.py
+++ b/sources/pyside6/PySide6/support/deprecated.py
@@ -13,6 +13,9 @@ Functions that are to be called for
Note that this fixing code is run after all initializations, but before the
import is finished. But that is no problem since the module is passed in.
+
+PYSIDE-1735: This is also used now for missing other functions (overwriting __or__
+ in Qt.(Keyboard)Modifier).
"""
import warnings
@@ -38,4 +41,31 @@ def _unused_fix_for_QtGui(QtGui):
if name.startswith("QMatrix") and "data" in cls.__dict__:
cls.constData = constData
+# PYSIDE-1735: Fix for a special enum function
+def fix_for_QtCore(QtCore):
+ from enum import Flag
+ Qt = QtCore.Qt
+ flag_or = Flag.__or__
+
+ def func_or(self, other):
+ if isinstance(self, Flag) and isinstance(other, Flag):
+ # this is normal or-ing flags together
+ return Qt.KeyboardModifier(self.value | other.value)
+ return QtCore.QKeyCombination(self, other)
+
+ def func_add(self, other):
+ warnings.warn(dedent(f"""
+ The "+" operator is deprecated in Qt For Python 6.0 .
+ Please use "|" instead."""), PySideDeprecationWarningRemovedInQt6, stacklevel=2)
+ return func_or(self, other)
+
+ Qt.KeyboardModifier.__or__ = func_or
+ Qt.KeyboardModifier.__ror__ = func_or
+ Qt.Modifier.__or__ = func_or
+ Qt.Modifier.__ror__ = func_or
+ Qt.KeyboardModifier.__add__ = func_add
+ Qt.KeyboardModifier.__radd__ = func_add
+ Qt.Modifier.__add__ = func_add
+ Qt.Modifier.__radd__ = func_add
+
# eof