diff options
Diffstat (limited to 'sources/pyside6/PySide6')
| -rw-r--r-- | sources/pyside6/PySide6/QtCore/typesystem_core_common.xml | 2 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtcore.cpp | 36 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/support/deprecated.py | 53 |
3 files changed, 38 insertions, 53 deletions
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml index 47c3ae4ea..93b831f95 100644 --- a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml +++ b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml @@ -653,6 +653,8 @@ <enum-type name="WindowType" python-type="IntFlag" flags="WindowFlags"/> <enum-type name="CursorMoveStyle" since="4.8" revision="4800"/> + <inject-code class="target" position="end" file="../glue/qtcore.cpp" + snippet="qt-modifier"/> </namespace-type> <add-function signature="QEnum(PyObject*)" return-type="PyObject*"> diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index 0bf71de04..7c79585a4 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -2106,3 +2106,39 @@ Q_IMPORT_PLUGIN(QDarwinCalendarPermissionPlugin) #endif // @snippet darwin_permission_plugin +// @snippet qt-modifier +PyObject *_inputDict = PyDict_New(); +// Note: The builtins line is no longer needed since Python 3.10. Undocumented! +PyDict_SetItemString(_inputDict, "__builtins__", PyEval_GetBuiltins()); +PyDict_SetItemString(_inputDict, "QtCore", module); +PyDict_SetItemString(_inputDict, "Qt", reinterpret_cast<PyObject *>(pyType)); +// Explicitly not dereferencing the result. +PyRun_String(R"PY(if True: + from enum import Flag + from textwrap import dedent + from warnings import warn + # QtCore and Qt come as globals. + + 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): + warn(dedent(f""" + The "+" operator is deprecated in Qt For Python 6.0 . + Please use "|" instead."""), 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 + +)PY", Py_file_input, _inputDict, _inputDict); +// @snippet qt-modifier diff --git a/sources/pyside6/PySide6/support/deprecated.py b/sources/pyside6/PySide6/support/deprecated.py index f215f2ff5..263dd3ed7 100644 --- a/sources/pyside6/PySide6/support/deprecated.py +++ b/sources/pyside6/PySide6/support/deprecated.py @@ -13,59 +13,6 @@ 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 -from textwrap import dedent - - -class PySideDeprecationWarningRemovedInQt6(Warning): - pass - - -def constData(self): - cls = self.__class__ - name = cls.__qualname__ - warnings.warn(dedent(f""" - {name}.constData is unpythonic and will be removed in Qt For Python 6.0 . - Please use {name}.data instead."""), PySideDeprecationWarningRemovedInQt6, stacklevel=2) - return cls.data(self) - - -# No longer needed but kept for reference. -def _unused_fix_for_QtGui(QtGui): - for name, cls in QtGui.__dict__.items(): - 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 |
