aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-19 11:36:19 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-05-19 16:55:56 +0200
commit639456cabd032b60aa371000a8ca98ddb9d08504 (patch)
tree7ca5581017c06e677f2469fc105f5bc4cef66666
parentc761068f334185bdd95401ee0392dff0d72d764b (diff)
PySide2: Prepare for Qt 6
- Change QBasicTimer to be an object type since its copy constructor and assignment were deleted in Qt 6. It probably was never intended to be a value type. - Remove the hash function of QItemSelectionRange which according to code comment is a dummy to get QItemSelectionRange::toSet() compiled with MSVC. There is no need for it to have it in Python - Adapt the underlying string types for QString conversion Task-number: PYSIDE-904 Change-Id: Idb60b95b6bc0ce3d1272862995f3247d2f191454 Reviewed-by: Christian Tismer <tismer@stackless.com>
-rw-r--r--sources/pyside2/PySide2/QtCore/typesystem_core_common.xml4
-rw-r--r--sources/pyside2/PySide2/glue/qtcore.cpp16
2 files changed, 14 insertions, 6 deletions
diff --git a/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml b/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
index 53ab2938..272f9a76 100644
--- a/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
+++ b/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml
@@ -789,7 +789,7 @@
</modify-function>
</object-type>
- <value-type name="QBasicTimer"/>
+ <object-type name="QBasicTimer"/>
<value-type name="QByteArrayMatcher"/>
<value-type name="QCalendar" since="5.14">
<value-type name="YearMonthDay"/>
@@ -1541,7 +1541,7 @@
<enum-type name="SelectionFlag" flags="SelectionFlags"/>
</object-type>
- <value-type name="QItemSelectionRange" hash-function="qHash">
+ <value-type name="QItemSelectionRange">
</value-type>
<object-type name="QAbstractProxyModel" polymorphic-id-expression="qobject_cast&lt;QAbstractProxyModel*&gt;(%1)">
<extra-includes>
diff --git a/sources/pyside2/PySide2/glue/qtcore.cpp b/sources/pyside2/PySide2/glue/qtcore.cpp
index 83438367..83c8f865 100644
--- a/sources/pyside2/PySide2/glue/qtcore.cpp
+++ b/sources/pyside2/PySide2/glue/qtcore.cpp
@@ -1681,11 +1681,19 @@ Py_END_ALLOW_THREADS
// @snippet conversion-pyunicode
#ifndef Py_LIMITED_API
Py_UNICODE *unicode = PyUnicode_AS_UNICODE(%in);
-# if defined(Py_UNICODE_WIDE)
+# if defined(Py_UNICODE_WIDE)
// cast as Py_UNICODE can be a different type
-%out = QString::fromUcs4((const uint *)unicode);
-# else
-%out = QString::fromUtf16((const ushort *)unicode, PepUnicode_GetLength(%in));
+# if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+%out = QString::fromUcs4(reinterpret_cast<const char32_t *>(unicode));
+# else
+%out = QString::fromUcs4(reinterpret_cast<const uint *>(unicode));
+# endif // Qt 6
+# else // Py_UNICODE_WIDE
+# if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+%out = QString::fromUtf16(reinterpret_cast<const char16_t *>(unicode), PepUnicode_GetLength(%in));
+# else
+%out = QString::fromUtf16(reinterpret_cast<const ushort *>(unicode), PepUnicode_GetLength(%in));
+# endif // Qt 6
# endif
#else
wchar_t *temp = PyUnicode_AsWideCharString(%in, NULL);