diff --git a/.ci/test_blocklist_qt6.txt b/.ci/test_blocklist_qt6.txt index a81734d8aee..ea2cf64851c 100644 --- a/.ci/test_blocklist_qt6.txt +++ b/.ci/test_blocklist_qt6.txt @@ -41,13 +41,11 @@ PyQgsPythonProvider PyQgsAnnotation PyQgsAuthenticationSystem PyQgsBlockingProcess -PyQgsBookmarkModel PyQgsCodeEditor PyQgsDelimitedTextProvider PyQgsEditWidgets PyQgsElevationProfileCanvas PyQgsProject -PyQgsFieldModel PyQgsFloatingWidget PyQgsJsonUtils PyQgsLayoutHtml diff --git a/python/PyQt/PyQt/QtCore.py.in b/python/PyQt/PyQt/QtCore.py.in index 064f56b6e58..531e3266dce 100644 --- a/python/PyQt/PyQt/QtCore.py.in +++ b/python/PyQt/PyQt/QtCore.py.in @@ -132,6 +132,20 @@ if (QT_VERSION >= 0x060000): QVariant.SizePolicy = QMetaType.Type.QSizePolicy QVariant.UserType = QMetaType.Type.User + from enum import Enum + + + def _force_int(v): return int(v.value) if isinstance(v, Enum) else v + + QMetaType.Type.__int__ = _force_int + QMetaType.Type.__eq__ = lambda t1, t2: _force_int(t1) == _force_int(t2) + + # These types aren't IntEnums or IntFlags, so patch that back in + Qt.ItemFlag.__int__ = _force_int + Qt.ItemFlag.__eq__ = lambda t1, t2: _force_int(t1) == _force_int(t2) + Qt.CheckState.__int__ = _force_int + Qt.CheckState.__eq__ = lambda t1, t2: _force_int(t1) == _force_int(t2) + # patch back in Qt flags removed in PyQt QAbstractItemModel.CheckIndexOptions = lambda flags=0: QAbstractItemModel.CheckIndexOption(flags)