aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/PySide6/QtCore
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/PySide6/QtCore')
-rw-r--r--sources/pyside6/PySide6/QtCore/CMakeLists.txt83
-rw-r--r--sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in1
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp109
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h54
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp142
-rw-r--r--sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp18
-rw-r--r--sources/pyside6/PySide6/QtCore/typesystem_core.xml3
-rw-r--r--sources/pyside6/PySide6/QtCore/typesystem_core_common.xml966
8 files changed, 1055 insertions, 321 deletions
diff --git a/sources/pyside6/PySide6/QtCore/CMakeLists.txt b/sources/pyside6/PySide6/QtCore/CMakeLists.txt
index 5cb3a0ad5..f3e4be0f9 100644
--- a/sources/pyside6/PySide6/QtCore/CMakeLists.txt
+++ b/sources/pyside6/PySide6/QtCore/CMakeLists.txt
@@ -1,9 +1,18 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
project(QtCore)
+set(CMAKE_AUTOMOC ON)
+
+set(QtCore_DROPPED_ENTRIES )
+
set(QtCore_static_sources
"${QtCore_SOURCE_DIR}/glue/qeasingcurve_glue.cpp"
"${QtCore_SOURCE_DIR}/glue/core_snippets.cpp"
"${QtCore_SOURCE_DIR}/glue/qtcorehelper.cpp"
+ "${QtCore_SOURCE_DIR}/glue/qiopipe.cpp"
+ "${pyside6_SOURCE_DIR}/qiopipe.h"
)
if(ENABLE_WIN)
@@ -11,7 +20,8 @@ if(ENABLE_WIN)
${QtCore_GEN_DIR}/qwineventnotifier_wrapper.cpp
)
else()
- set(SPECIFIC_OS_FILES "")
+ set(SPECIFIC_OS_FILES
+ ${QtCore_GEN_DIR}/qprocess_unixprocessparameters_wrapper.cpp)
endif()
set(QtCore_SRC
@@ -31,8 +41,8 @@ ${QtCore_GEN_DIR}/qbuffer_wrapper.cpp
${QtCore_GEN_DIR}/qbytearray_frombase64result_wrapper.cpp
${QtCore_GEN_DIR}/qbytearray_wrapper.cpp
${QtCore_GEN_DIR}/qbytearraymatcher_wrapper.cpp
-${QtCore_GEN_DIR}/qcalendar_wrapper.cpp
${QtCore_GEN_DIR}/qcalendar_systemid_wrapper.cpp
+${QtCore_GEN_DIR}/qcalendar_wrapper.cpp
${QtCore_GEN_DIR}/qcalendar_yearmonthday_wrapper.cpp
${QtCore_GEN_DIR}/qcborarray_wrapper.cpp
${QtCore_GEN_DIR}/qcborerror_wrapper.cpp
@@ -71,6 +81,7 @@ ${QtCore_GEN_DIR}/qfilesystemwatcher_wrapper.cpp
${QtCore_GEN_DIR}/qfutureinterfacebase_wrapper.cpp
${QtCore_GEN_DIR}/qgenericargument_wrapper.cpp
${QtCore_GEN_DIR}/qgenericreturnargument_wrapper.cpp
+${QtCore_GEN_DIR}/qhashseed_wrapper.cpp
${QtCore_GEN_DIR}/qidentityproxymodel_wrapper.cpp
${QtCore_GEN_DIR}/qiodevice_wrapper.cpp
${QtCore_GEN_DIR}/qiodevicebase_wrapper.cpp
@@ -88,6 +99,7 @@ ${QtCore_GEN_DIR}/qline_wrapper.cpp
${QtCore_GEN_DIR}/qlinef_wrapper.cpp
${QtCore_GEN_DIR}/qlocale_wrapper.cpp
${QtCore_GEN_DIR}/qlockfile_wrapper.cpp
+${QtCore_GEN_DIR}/qloggingcategory_wrapper.cpp
${QtCore_GEN_DIR}/qmargins_wrapper.cpp
${QtCore_GEN_DIR}/qmarginsf_wrapper.cpp
${QtCore_GEN_DIR}/qmessageauthenticationcode_wrapper.cpp
@@ -105,8 +117,10 @@ ${QtCore_GEN_DIR}/qmimetype_wrapper.cpp
${QtCore_GEN_DIR}/qmodelindex_wrapper.cpp
${QtCore_GEN_DIR}/qmodelroledata_wrapper.cpp
${QtCore_GEN_DIR}/qmutex_wrapper.cpp
+${QtCore_GEN_DIR}/qnativeipckey_wrapper.cpp
${QtCore_GEN_DIR}/qobject_wrapper.cpp
${QtCore_GEN_DIR}/qoperatingsystemversion_wrapper.cpp
+${QtCore_GEN_DIR}/qoperatingsystemversionbase_wrapper.cpp
${QtCore_GEN_DIR}/qparallelanimationgroup_wrapper.cpp
${QtCore_GEN_DIR}/qpauseanimation_wrapper.cpp
${QtCore_GEN_DIR}/qpersistentmodelindex_wrapper.cpp
@@ -133,7 +147,6 @@ ${QtCore_GEN_DIR}/qsemaphore_wrapper.cpp
${QtCore_GEN_DIR}/qsemaphorereleaser_wrapper.cpp
${QtCore_GEN_DIR}/qsequentialanimationgroup_wrapper.cpp
${QtCore_GEN_DIR}/qsettings_wrapper.cpp
-${QtCore_GEN_DIR}/qsharedmemory_wrapper.cpp
${QtCore_GEN_DIR}/qsignalblocker_wrapper.cpp
${QtCore_GEN_DIR}/qsignalmapper_wrapper.cpp
${QtCore_GEN_DIR}/qsize_wrapper.cpp
@@ -143,17 +156,18 @@ ${QtCore_GEN_DIR}/qsocketnotifier_wrapper.cpp
${QtCore_GEN_DIR}/qsortfilterproxymodel_wrapper.cpp
${QtCore_GEN_DIR}/qstandardpaths_wrapper.cpp
${QtCore_GEN_DIR}/qstorageinfo_wrapper.cpp
-${QtCore_GEN_DIR}/qstringconverterbase_wrapper.cpp
-${QtCore_GEN_DIR}/qstringconverterbase_state_wrapper.cpp
${QtCore_GEN_DIR}/qstringconverter_wrapper.cpp
-${QtCore_GEN_DIR}/qstringencoder_wrapper.cpp
+${QtCore_GEN_DIR}/qstringconverterbase_state_wrapper.cpp
+${QtCore_GEN_DIR}/qstringconverterbase_wrapper.cpp
${QtCore_GEN_DIR}/qstringdecoder_wrapper.cpp
+${QtCore_GEN_DIR}/qstringencoder_wrapper.cpp
${QtCore_GEN_DIR}/qstringlistmodel_wrapper.cpp
${QtCore_GEN_DIR}/qsysinfo_wrapper.cpp
${QtCore_GEN_DIR}/qsystemsemaphore_wrapper.cpp
${QtCore_GEN_DIR}/qt_wrapper.cpp
${QtCore_GEN_DIR}/qtcorehelper_qgenericargumentholder_wrapper.cpp
${QtCore_GEN_DIR}/qtcorehelper_qgenericreturnargumentholder_wrapper.cpp
+${QtCore_GEN_DIR}/qtcorehelper_qiopipe_wrapper.cpp
${QtCore_GEN_DIR}/qtcorehelper_qmutexlocker_wrapper.cpp
${QtCore_GEN_DIR}/qtemporarydir_wrapper.cpp
${QtCore_GEN_DIR}/qtemporaryfile_wrapper.cpp
@@ -185,16 +199,36 @@ ${QtCore_GEN_DIR}/qxmlstreamnamespacedeclaration_wrapper.cpp
${QtCore_GEN_DIR}/qxmlstreamnotationdeclaration_wrapper.cpp
${QtCore_GEN_DIR}/qxmlstreamreader_wrapper.cpp
${QtCore_GEN_DIR}/qxmlstreamwriter_wrapper.cpp
-${QtCore_GEN_DIR}/qloggingcategory_wrapper.cpp
${SPECIFIC_OS_FILES}
# module is always needed
${QtCore_GEN_DIR}/qtcore_module_wrapper.cpp
)
-if (Qt${QT_MAJOR_VERSION}Core_VERSION VERSION_EQUAL 6.3.0 OR Qt${QT_MAJOR_VERSION}Core_VERSION VERSION_GREATER 6.3.0)
+get_property(QtCore_disabled_features TARGET Qt${QT_MAJOR_VERSION}::Core
+ PROPERTY QT_DISABLED_PUBLIC_FEATURES)
+
+if("permissions" IN_LIST QtCore_disabled_features)
+ list(APPEND QtCore_DROPPED_ENTRIES QPermission
+ QBluetoothPermission QCalendarPermission QCameraPermission
+ QContactsPermission QLocationPermission QMicrophonePermission)
+ message(STATUS "Qt${QT_MAJOR_VERSION}Core: Dropping Permissions classes")
+else()
list(APPEND QtCore_SRC
- ${QtCore_GEN_DIR}/qoperatingsystemversionbase_wrapper.cpp)
+ ${QtCore_GEN_DIR}/qbluetoothpermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qcalendarpermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qcamerapermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qcontactspermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qlocationpermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qmicrophonepermission_wrapper.cpp
+ ${QtCore_GEN_DIR}/qpermission_wrapper.cpp)
+endif()
+
+if("sharedmemory" IN_LIST QtCore_disabled_features)
+ list(APPEND QtCore_DROPPED_ENTRIES QSharedMemory)
+ message(STATUS "Qt${QT_MAJOR_VERSION}Core: Dropping QSharedMemory")
+else()
+ list(APPEND QtCore_SRC ${QtCore_GEN_DIR}/qsharedmemory_wrapper.cpp)
endif()
configure_file("${QtCore_SOURCE_DIR}/QtCore_global.post.h.in"
@@ -213,6 +247,7 @@ set(QtCore_include_dirs ${QtCore_SOURCE_DIR}
)
set(QtCore_libraries pyside6
${Qt${QT_MAJOR_VERSION}Core_LIBRARIES}
+ Qt::CorePrivate
)
create_pyside_module(NAME QtCore
@@ -223,6 +258,34 @@ create_pyside_module(NAME QtCore
STATIC_SOURCES QtCore_static_sources
TYPESYSTEM_NAME ${QtCore_BINARY_DIR}/typesystem_core.xml
GLUE_SOURCES QtCore_glue_sources
+ DROPPED_ENTRIES QtCore_DROPPED_ENTRIES
)
-install(FILES ${pyside6_SOURCE_DIR}/qtcorehelper.h DESTINATION include/PySide6/QtCore/)
+# Note: The permission API for Apple platforms only works if the Python application is packaged
+# with pyside6-deploy (uses Nuitka). Read "Notes for Developers" in Qt for Python documentation
+# for more information
+#
+# For Apple platforms, the Qt permission API implementations are in small static libraries.
+# In Qt C++, the application is linked directly to these static libraries during the build when
+# linking to the QtCore module as a post processing CMake step.
+# Being static plugins makes it difficult to add these plugins during Nuitka packaging step.
+# Thus, we link the static plugins to QtCore.abi3.so. However, to request the permissions
+# it is still required to have the necessary Information Property keys eg: NSCameraUsageDescription
+# in the Info.plist of the application bundle which Nuitka creates.
+if (APPLE)
+ set(permissions Camera Microphone Bluetooth Contacts Calendar)
+ foreach(permission IN LISTS permissions)
+ set(permission_plugin_name "QDarwin${permission}PermissionPlugin")
+ set(permission_plugin "${QT_CMAKE_EXPORT_NAMESPACE}::${permission_plugin_name}")
+ # Setting this property is necessary for Camera and Microphone. Otherwise it won't append
+ # the linker flags like -Wl,-u,_QDarwinMicrophonePermissionRequest which are required to
+ # link to qdarwinpermissionplugin_microphone_request.mm.o and find symbols like
+ # QDarwinMicrosphonePermissionHandler which handles requesting the actual permission
+ set_target_properties(QtCore PROPERTIES "_qt_has_${permission_plugin_name}_usage_description" TRUE)
+ # importing the plugin
+ qt6_import_plugins(QtCore INCLUDE ${permission_plugin})
+ endforeach()
+endif()
+
+install(FILES ${pyside6_SOURCE_DIR}/qtcorehelper.h ${pyside6_SOURCE_DIR}/qiopipe.h
+ DESTINATION include/PySide6/QtCore/)
diff --git a/sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in b/sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in
index 55a49bb88..8383b9ae4 100644
--- a/sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in
+++ b/sources/pyside6/PySide6/QtCore/QtCore_global.post.h.in
@@ -1 +1,2 @@
#include <qtcorehelper.h>
+#include <qiopipe.h>
diff --git a/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp b/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp
index 4978387ff..f6acf9d60 100644
--- a/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp
+++ b/sources/pyside6/PySide6/QtCore/glue/core_snippets.cpp
@@ -2,11 +2,16 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "core_snippets_p.h"
+#include "qtcorehelper.h"
#include "pysideqobject.h"
#include "shiboken.h"
+#ifndef Py_LIMITED_API
+# include <datetime.h>
+#endif
#include "basewrapper.h"
#include "autodecref.h"
+#include "pysideutils.h"
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
@@ -62,7 +67,8 @@ QVariant QVariant_convertToValueList(PyObject *list)
Shiboken::AutoDecRef element(PySequence_GetItem(list, 0));
- QMetaType metaType = QVariant_resolveMetaType(element.cast<PyTypeObject *>());
+ auto *type = reinterpret_cast<PyTypeObject *>(element.object());
+ QMetaType metaType = QVariant_resolveMetaType(type);
if (!metaType.isValid())
return {};
@@ -237,3 +243,104 @@ QString qObjectTr(PyTypeObject *type, const char *sourceText, const char *disamb
}
return result;
}
+
+bool PyDate_ImportAndCheck(PyObject *pyIn)
+{
+ if (!PyDateTimeAPI)
+ PyDateTime_IMPORT;
+ return PyDate_Check(pyIn);
+}
+
+bool PyDateTime_ImportAndCheck(PyObject *pyIn)
+{
+ if (!PyDateTimeAPI)
+ PyDateTime_IMPORT;
+ return PyDateTime_Check(pyIn);
+}
+
+bool PyTime_ImportAndCheck(PyObject *pyIn)
+{
+ if (!PyDateTimeAPI)
+ PyDateTime_IMPORT;
+ return PyTime_Check(pyIn);
+}
+
+PyObject *invokeMetaMethod(const InvokeMetaMethodFunc &f,
+ const QtCoreHelper::QGenericArgumentHolder &a0,
+ const QtCoreHelper::QGenericArgumentHolder &a1,
+ const QtCoreHelper::QGenericArgumentHolder &a2,
+ const QtCoreHelper::QGenericArgumentHolder &a3,
+ const QtCoreHelper::QGenericArgumentHolder &a4,
+ const QtCoreHelper::QGenericArgumentHolder &a5,
+ const QtCoreHelper::QGenericArgumentHolder &a6,
+ const QtCoreHelper::QGenericArgumentHolder &a7,
+ const QtCoreHelper::QGenericArgumentHolder &a8,
+ const QtCoreHelper::QGenericArgumentHolder &a9)
+{
+ PyThreadState *_save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS
+ const bool resultB = f(a0.toGenericArgument(), a1.toGenericArgument(), a2.toGenericArgument(),
+ a3.toGenericArgument(), a4.toGenericArgument(), a5.toGenericArgument(),
+ a6.toGenericArgument(), a7.toGenericArgument(), a8.toGenericArgument(),
+ a9.toGenericArgument());
+ PyEval_RestoreThread(_save); // Py_END_ALLOW_THREADS
+ PyObject *result = resultB ? Py_True : Py_False;
+ Py_INCREF(result);
+ return result;
+}
+
+// Convert a QGenericReturnArgument to Python for QMetaObject::invokeMethod
+static PyObject *convertGenericReturnArgument(const void *retData, QMetaType metaType)
+{
+ PyObject *result = nullptr;
+ switch (metaType.id()) {
+ case QMetaType::Bool:
+ result = *reinterpret_cast<const bool *>(retData) ? Py_True : Py_False;
+ Py_INCREF(result);
+ break;
+ case QMetaType::Int:
+ result = PyLong_FromLong(*reinterpret_cast<const int *>(retData));
+ break;
+ case QMetaType::Double:
+ result = PyFloat_FromDouble(*reinterpret_cast<const double *>(retData));
+ break;
+ case QMetaType::QString:
+ result = PySide::qStringToPyUnicode(*reinterpret_cast<const QString *>(retData));
+ break;
+ default: {
+ Shiboken::Conversions::SpecificConverter converter(metaType.name());
+ const auto type = converter.conversionType();
+ if (type == Shiboken::Conversions::SpecificConverter::InvalidConversion) {
+ PyErr_Format(PyExc_RuntimeError, "%s: Unable to find converter for \"%s\".",
+ __FUNCTION__, metaType.name());
+ return nullptr;
+ }
+ result = converter.toPython(retData);
+ }
+ }
+ return result;
+}
+
+PyObject *invokeMetaMethodWithReturn(const InvokeMetaMethodFuncWithReturn &f,
+ const QtCoreHelper::QGenericReturnArgumentHolder &r,
+ const QtCoreHelper::QGenericArgumentHolder &a0,
+ const QtCoreHelper::QGenericArgumentHolder &a1,
+ const QtCoreHelper::QGenericArgumentHolder &a2,
+ const QtCoreHelper::QGenericArgumentHolder &a3,
+ const QtCoreHelper::QGenericArgumentHolder &a4,
+ const QtCoreHelper::QGenericArgumentHolder &a5,
+ const QtCoreHelper::QGenericArgumentHolder &a6,
+ const QtCoreHelper::QGenericArgumentHolder &a7,
+ const QtCoreHelper::QGenericArgumentHolder &a8,
+ const QtCoreHelper::QGenericArgumentHolder &a9)
+{
+ PyThreadState *_save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS
+ const bool callResult = f(r.toGenericReturnArgument(),
+ a0.toGenericArgument(), a1.toGenericArgument(), a2.toGenericArgument(),
+ a3.toGenericArgument(), a4.toGenericArgument(), a5.toGenericArgument(),
+ a6.toGenericArgument(), a7.toGenericArgument(), a8.toGenericArgument(),
+ a9.toGenericArgument());
+ PyEval_RestoreThread(_save); // Py_END_ALLOW_THREADS
+ if (!callResult)
+ return PyErr_Format(PyExc_RuntimeError, "QMetaMethod invocation failed.");
+ return convertGenericReturnArgument(r.data(), r.metaType());
+}
diff --git a/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h b/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h
index 9a0a8c0ab..11e84b291 100644
--- a/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h
+++ b/sources/pyside6/PySide6/QtCore/glue/core_snippets_p.h
@@ -12,11 +12,20 @@
#include <functional>
+QT_FORWARD_DECLARE_CLASS(QGenericArgument)
+QT_FORWARD_DECLARE_CLASS(QGenericReturnArgument)
QT_FORWARD_DECLARE_CLASS(QMetaType)
QT_FORWARD_DECLARE_CLASS(QObject)
QT_FORWARD_DECLARE_CLASS(QRegularExpression)
QT_FORWARD_DECLARE_CLASS(QVariant);
+QT_BEGIN_NAMESPACE
+namespace QtCoreHelper {
+class QGenericArgumentHolder;
+class QGenericReturnArgumentHolder;
+}
+QT_END_NAMESPACE
+
// Helpers for QVariant conversion
QMetaType QVariant_resolveMetaType(PyTypeObject *type);
@@ -48,4 +57,49 @@ void qObjectFindChildren(const QObject *parent, const QRegularExpression &patter
// Helpers for translation
QString qObjectTr(PyTypeObject *type, const char *sourceText, const char *disambiguation, int n);
+bool PyDate_ImportAndCheck(PyObject *pyIn);
+bool PyDateTime_ImportAndCheck(PyObject *pyIn);
+bool PyTime_ImportAndCheck(PyObject *pyIn);
+
+// Helpers for QMetaObject::invokeMethod(), QMetaMethod::invoke(). The std::function
+// serves to abstract from QMetaObject/QMetaMethod invocation parameters.
+using InvokeMetaMethodFunc =
+ std::function<bool(QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument,
+ QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument,
+ QGenericArgument,QGenericArgument)>;
+
+using InvokeMetaMethodFuncWithReturn =
+ std::function<bool(QGenericReturnArgument,
+ QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument,
+ QGenericArgument,QGenericArgument,QGenericArgument,QGenericArgument,
+ QGenericArgument,QGenericArgument)>;
+
+// Call a void meta method from Python passing the argument holder helpers.
+PyObject *invokeMetaMethod(const InvokeMetaMethodFunc &f,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &);
+
+// Call a meta method with a return value from Python passing the argument holder
+// helpers.
+PyObject *invokeMetaMethodWithReturn(const InvokeMetaMethodFuncWithReturn &f,
+ const QtCoreHelper::QGenericReturnArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &,
+ const QtCoreHelper::QGenericArgumentHolder &);
+
#endif // CORE_SNIPPETS_P_H
diff --git a/sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp b/sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp
new file mode 100644
index 000000000..6799c0f32
--- /dev/null
+++ b/sources/pyside6/PySide6/QtCore/glue/qiopipe.cpp
@@ -0,0 +1,142 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#include "qiopipe.h"
+
+#include <QtCore/private/qobject_p.h>
+#include <QtCore/qdebug.h>
+#include <QtCore/qiodevice.h>
+#include <QtCore/qpointer.h>
+
+#include <memory>
+
+QT_BEGIN_NAMESPACE
+
+namespace QtCoreHelper
+{
+
+class QPipeEndPoint : public QIODevice
+{
+ Q_OBJECT
+
+public:
+ bool isSequential() const override;
+ qint64 bytesAvailable() const override;
+
+ void setRemoteEndPoint(QPipeEndPoint *other);
+
+protected:
+ qint64 readData(char *data, qint64 maxlen) override;
+ qint64 writeData(const char *data, qint64 len) override;
+
+private:
+ QByteArray m_buffer;
+ QPointer<QPipeEndPoint> m_remoteEndPoint;
+};
+
+class QIOPipePrivate final : public QObjectPrivate
+{
+ Q_DECLARE_PUBLIC(QIOPipe)
+public:
+ QIOPipePrivate();
+ ~QIOPipePrivate() {};
+
+ std::unique_ptr<QPipeEndPoint> end1;
+ std::unique_ptr<QPipeEndPoint> end2;
+};
+
+QIOPipe::QIOPipe(QObject *parent) : QObject(*(new QIOPipePrivate()), parent) { }
+
+bool QIOPipe::open(QIODevice::OpenMode mode)
+{
+ Q_D(QIOPipe);
+
+ if (!d->end1->open(mode))
+ return false;
+ switch (mode & QIODevice::ReadWrite) {
+ case QIODevice::WriteOnly:
+ case QIODevice::ReadOnly:
+ return d->end2->open(mode ^ QIODevice::ReadWrite);
+ default:
+ return d->end2->open(mode);
+ }
+}
+
+QIODevice *QIOPipe::end1() const
+{
+ Q_D(const QIOPipe);
+ return d->end1.get();
+}
+
+QIODevice *QIOPipe::end2() const
+{
+ Q_D(const QIOPipe);
+ return d->end2.get();
+}
+
+QIOPipePrivate::QIOPipePrivate() : end1(std::make_unique<QPipeEndPoint>()),
+ end2(std::make_unique<QPipeEndPoint>())
+{
+ end1->setRemoteEndPoint(end2.get());
+ end2->setRemoteEndPoint(end1.get());
+}
+
+bool QPipeEndPoint::isSequential() const
+{
+ return true;
+}
+
+qint64 QPipeEndPoint::bytesAvailable() const
+{
+ return m_buffer.size() + QIODevice::bytesAvailable();
+}
+
+void QPipeEndPoint::setRemoteEndPoint(QPipeEndPoint *other)
+{
+ m_remoteEndPoint = other;
+}
+
+qint64 QPipeEndPoint::readData(char *data, qint64 maxlen)
+{
+ maxlen = qMin(maxlen, static_cast<qint64>(m_buffer.size()));
+ if (maxlen <= 0)
+ return 0;
+
+ Q_ASSERT(maxlen > 0);
+ memcpy(data, m_buffer.data(), static_cast<size_t>(maxlen));
+ m_buffer = m_buffer.mid(maxlen);
+ return maxlen;
+}
+
+qint64 QPipeEndPoint::writeData(const char *data, qint64 len)
+{
+ if (!m_remoteEndPoint)
+ return -1;
+
+ if (len <= 0)
+ return 0;
+
+ QByteArray &buffer = m_remoteEndPoint->m_buffer;
+ const qint64 prevLen = buffer.size();
+ Q_ASSERT(prevLen >= 0);
+ len = qMin(len, std::numeric_limits<int>::max() - prevLen);
+
+ if (len == 0)
+ return 0;
+
+ Q_ASSERT(len > 0);
+ Q_ASSERT(prevLen + len > 0);
+ Q_ASSERT(prevLen + len <= std::numeric_limits<int>::max());
+
+ buffer.resize(prevLen + len);
+ memcpy(buffer.data() + prevLen, data, static_cast<size_t>(len));
+ Q_EMIT bytesWritten(len);
+ Q_EMIT m_remoteEndPoint->readyRead();
+ return len;
+}
+
+} // namespace QtCoreHelper
+
+QT_END_NAMESPACE
+
+#include "qiopipe.moc"
diff --git a/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp b/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp
index 0ce4ce922..948c0ce5c 100644
--- a/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp
+++ b/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp
@@ -5,6 +5,8 @@
#include <QtCore/qdebug.h>
+QT_BEGIN_NAMESPACE
+
namespace QtCoreHelper {
// Data classes for the generic argument data classes. The argument is freed
@@ -50,7 +52,7 @@ QGenericArgumentHolder::QGenericArgumentHolder()
}
QGenericArgumentHolder::QGenericArgumentHolder(const QMetaType &type, const void *aData) :
- d(new QGenericArgumentData(type, aData))
+ d(std::make_shared<QGenericArgumentData>(type, aData))
{
}
@@ -60,23 +62,23 @@ QGenericArgumentHolder &QGenericArgumentHolder::operator=(const QGenericArgument
QGenericArgumentHolder &QGenericArgumentHolder::operator=(QGenericArgumentHolder &&) = default;
QGenericArgumentHolder::~QGenericArgumentHolder() = default;
-QGenericArgumentHolder::operator QGenericArgument() const
+QGenericArgument QGenericArgumentHolder::toGenericArgument() const
{
- return d.isNull() ? QGenericArgument{} : d->m_argument;
+ return d ? d->m_argument : QGenericArgument{};
}
QMetaType QGenericArgumentHolder::metaType() const
{
- return d.isNull() ? QMetaType{} : d->m_type;
+ return d ? d->m_type : QMetaType{};
}
const void *QGenericArgumentHolder::data() const
{
- return d.isNull() ? nullptr : d->m_argument.data();
+ return d ? d->m_argument.data() : nullptr;
}
QGenericReturnArgumentHolder::QGenericReturnArgumentHolder(const QMetaType &type, void *aData) :
- d(new QGenericReturnArgumentData(type, aData))
+ d(std::make_shared<QGenericReturnArgumentData>(type, aData))
{
}
@@ -86,7 +88,7 @@ QGenericReturnArgumentHolder &QGenericReturnArgumentHolder::operator=(const QGen
QGenericReturnArgumentHolder &QGenericReturnArgumentHolder::operator=(QGenericReturnArgumentHolder &&) = default;
QGenericReturnArgumentHolder::~QGenericReturnArgumentHolder() = default;
-QGenericReturnArgumentHolder::operator QGenericReturnArgument() const
+QGenericReturnArgument QGenericReturnArgumentHolder::toGenericReturnArgument() const
{
return d->m_argument;
}
@@ -102,3 +104,5 @@ const void *QGenericReturnArgumentHolder::data() const
}
} // namespace QtCoreHelper
+
+QT_END_NAMESPACE
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core.xml b/sources/pyside6/PySide6/QtCore/typesystem_core.xml
index 7dd664294..885b53874 100644
--- a/sources/pyside6/PySide6/QtCore/typesystem_core.xml
+++ b/sources/pyside6/PySide6/QtCore/typesystem_core.xml
@@ -3,7 +3,8 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
-<typesystem package="PySide6.QtCore">
+<typesystem package="PySide6.QtCore"
+ namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
<?if windows?>
<load-typesystem name="QtCore/typesystem_core_win.xml" generate="yes"/>
<?endif?>
diff --git a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
index bacccebe5..110f86f25 100644
--- a/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
+++ b/sources/pyside6/PySide6/QtCore/typesystem_core_common.xml
@@ -17,6 +17,8 @@
<include file-name="pysidemetatype.h" location="global"/>
<include file-name="pysideutils.h" location="global"/> <!-- QString conversion -->
<include file-name="signalmanager.h" location="global"/>
+ <!-- QtCoreHelper::QGenericReturnArgumentHolder -->
+ <include file-name="qtcorehelper.h" location="local"/>
</extra-includes>
<function signature="qFastCos(qreal)" since="4.6"/>
@@ -29,46 +31,73 @@
<function signature="qIsNull(double)"/>
<!-- Qt5: gone <function signature="qRound(qreal)"/> -->
<function signature="qtTrId(const char*,int)" since="4.6"/>
- <function signature="qVersion()"/>
- <function signature="qCompress(const uchar*,qsizetype,int)"/>
- <function signature="qCompress(const QByteArray&amp;,int)"/>
- <function signature="qUncompress(const uchar*,qsizetype)"/>
- <function signature="qUncompress(const QByteArray&amp;)"/>
- <function signature="qFormatLogMessage(QtMsgType,const QMessageLogContext&amp;,const QString&amp;)"/>
- <function signature="qSetMessagePattern(const QString&amp;)"/>
+ <function signature="qVersion()">
+ <modify-function>
+ <modify-argument index="return" pyi-type="str"/>
+ </modify-function>
+ </function>
+ <!-- Move PyBuffer overload to front to avoid conversion PyBuffer->QByteArray -->
+ <function signature="qCompress(const uchar*,qsizetype,int)" overload-number="0">
+ <modify-function>
+ <modify-argument index="1">
+ <replace-type modified-type="PyBuffer"/>
+ </modify-argument>
+ <inject-code file="../glue/qtcore.cpp" snippet="qcompress-buffer"/>
+ </modify-function>
+ </function>
+ <function signature="qCompress(const QByteArray&amp;,int)" overload-number="1"/>
+ <!-- Move PyBuffer overload to front to avoid conversion PyBuffer->QByteArray -->
+ <function signature="qUncompress(const uchar*,qsizetype)" overload-number="0">
+ <modify-function>
+ <modify-argument index="1">
+ <replace-type modified-type="PyBuffer"/>
+ </modify-argument>
+ <inject-code file="../glue/qtcore.cpp" snippet="quncompress-buffer"/>
+ </modify-function>
+ </function>
+ <function signature="qUncompress(const QByteArray&amp;)" overload-number="1"/>
+ <function signature="qFormatLogMessage(QtMsgType,const QMessageLogContext&amp;,const QString&amp;)"
+ doc-file="qtlogging"/>
+ <function signature="qSetMessagePattern(const QString&amp;)" doc-file="qtlogging"/>
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="include-pyside"/>
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
snippet="qarg_helper"/>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="darwin_permission_plugin"/>
<add-function signature="qDebug(const char*)">
<inject-code file="../glue/qtcore.cpp" snippet="use-stream-for-format-security"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="qCritical(const char*)">
<inject-code file="../glue/qtcore.cpp" snippet="use-stream-for-format-security"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="qFatal(const char*)">
<inject-code file="../glue/qtcore.cpp" snippet="qfatal"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="qWarning(const char*)">
<inject-code file="../glue/qtcore.cpp" snippet="use-stream-for-format-security"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
- <add-function signature="Q_ARG(PyTypeObject *@type@, PyObject *@value@)"
+ <add-function signature="Q_ARG(PyObject *@type@, PyObject *@value@)"
return-type="QtCoreHelper::QGenericArgumentHolder">
<inject-code file="../glue/qtcore.cpp" snippet="q_arg"/>
<inject-documentation format="target" mode="append">
- This function takes a type and a value of that type and returns an internal
- object that can be passed to QMetaObject.invokeMethod().
- See also Q_RETURN_ARG().
+ This function takes a type (or a type string) and a value of that type
+ and returns an internal object that can be passed to
+ QMetaObject.invokeMethod(). See also Q_RETURN_ARG().
</inject-documentation>
</add-function>
- <add-function signature="Q_RETURN_ARG(PyTypeObject *@type@)"
+ <add-function signature="Q_RETURN_ARG(PyObject *@type@)"
return-type="QtCoreHelper::QGenericReturnArgumentHolder">
<inject-code file="../glue/qtcore.cpp" snippet="q_return_arg"/>
<inject-documentation format="target" mode="append">
- This macro takes a type a value of which is then returned by
- QMetaObject::invokeMethod(). See also Q_ARG().
+ This macro takes a type (or a type string) a value of which is then
+ returned by QMetaObject::invokeMethod(). See also Q_ARG().
</inject-documentation>
</add-function>
@@ -85,53 +114,53 @@
<rejection class="QtSharedPointer"/>
<rejection class="QtStringBuilder"/>
+ <rejection class="q20"/>
+ <rejection class="q23"/>
+ <rejection class="q_has_char8_t"/>
+ <rejection class="QContainerInfo"/>
+ <rejection class="QHashPrivate"/>
+ <rejection class="q_no_char8_t"/>
+ <rejection class="Qt::Literals"/>
+ <rejection class="QtLiterals"/>
+ <rejection class="QtMetaContainerPrivate"/>
+ <rejection class="QtTsan"/>
+ <rejection class="QTypeTraits"/>
+ <rejection class="qxp"/>
+
<rejection class="QChildEvent" field-name="c"/>
<rejection class="QTimerEvent" field-name="id"/>
<rejection class="QEvent" field-name="t"/>
<rejection class="*" function-name="tr"/>
- <rejection class="*" function-name="qt_metacast"/>
<!-- From Qt4.6 -->
<rejection class="*" field-name="d_ptr"/>
- <rejection class="*" field-name="staticQtMetaObject"/>
- <rejection class="*" function-name="qobject_interface_iid"/>
- <rejection class="*" function-name="qGetPtrHelper"/>
- <rejection class="*" function-name="q_check_ptr"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QTextCodecFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qobject_interface_iid&lt;QFactoryInterface*&gt;"/>
- <rejection class="*" function-name="qRegisterAnimationInterpolator"/>
- <rejection class="*" function-name="qvariant_cast&lt;QVariant&gt;"/>
- <rejection class="*" function-name="qVariantSetValue&lt;QVariant&gt;"/>
- <rejection class="*" function-name="qReallocAligned"/>
- <rejection class="*" function-name="qMallocAligned"/>
- <rejection class="*" function-name="qFreeAligned"/>
<rejection class="QMetaMethod" enum-name="Attributes"/>
+ <rejection class="QMetaMethod" field-name="data"/>
+ <!-- Note: Default parameter values of Disambiguated_t as defined by
+ QT6_DECL_NEW_OVERLOAD_TAIL are not seen by the clang parser since it
+ is relying on code snippets for the values. -->
+ <rejection class="Qt" field-name="Disambiguated"/>
+ <rejection class="" enum-name="QCborNegativeInteger"/>
<rejection class="*" argument-type="^qfloat16&amp;?$"/>
- <rejection class="*" argument-type="QLatin1String"/>
<rejection class="*" argument-type="QTSMFI"/>
<rejection class="*" argument-type="QTSMFC"/>
<rejection class="*" argument-type="QtPrivate::QSlotObjectBase*"/>
<rejection class="*" argument-type="^Q\w+Private( const)?\&amp;$"/>
<!-- Note: "QHelpModel(QHelpEnginePrivate*)" is needed -->
<rejection class="*" argument-type="^Q[^H]\w+Private( const)?\*$"/>
- <rejection class="*" argument-type="^.*::QPrivateSignal$"/>
<rejection class="*" argument-type="Qt::Initialization"/>
<rejection class="*" argument-type="FILE*"/>
<rejection class="*" argument-type="std::chrono::milliseconds"/>
<rejection class="*" argument-type="^std::nullptr_t&amp;?$"/>
<rejection class="*" argument-type="^std::initializer_list&lt;.*$"/>
- <rejection class="*" argument-type="^std::list&lt;[^&gt;]&gt; const&amp;$"/>
- <rejection class="*" argument-type="std::string const&amp;"/>
- <rejection class="*" argument-type="^std::vector&lt;[^&gt;]&gt; const&amp;$"/>
<!-- From Qt4.6 ^^^ -->
-
- <enum-type name="QtMsgType"/>
- <enum-type name="QCborSimpleType" since="5.12"/>
- <enum-type name="QCborKnownTags" since="5.12"/>
- <enum-type name="QCborTag"/>
+ <enum-type name="QtMsgType" doc-file="qtlogging"/>
+ <enum-type name="QCborSimpleType" doc-file="qtcborcommon"/>
+ <enum-type name="QCborKnownTags" doc-file="qtcborcommon"/>
+ <enum-type name="QCborTag" doc-file="qtcborcommon"/>
<primitive-type name="qint8"/>
<primitive-type name="qint16"/>
@@ -197,7 +226,14 @@
</target-to-native>
</conversion-rule>
</primitive-type>
-
+ <primitive-type name="QFunctionPointer" target-lang-api-name="PyLong">
+ <conversion-rule>
+ <native-to-target file="../glue/qtcore.cpp" snippet="return-qfunctionpointer-pylong"/>
+ <target-to-native>
+ <add-conversion type="PyLong" file="../glue/qtcore.cpp" snippet="conversion-pylong-qfunctionpointer"/>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
<primitive-type name="QString" target-lang-api-name="PyUnicode">
<include file-name="QString" location="global"/>
<conversion-rule>
@@ -216,6 +252,17 @@
</conversion-rule>
</primitive-type>
+ <primitive-type name="QLatin1String" target-lang-api-name="PyUnicode">
+ <include file-name="QtCore/qlatin1stringview.h" location="global"/>
+ <conversion-rule>
+ <native-to-target file="../glue/qtcore.cpp" snippet="return-pyunicode-from-qlatin1string"/>
+ <target-to-native>
+ <add-conversion type="PyString" check="qLatin1StringCheck(%in)"
+ file="../glue/qtcore.cpp" snippet="conversion-pystring-qlatin1string"/>
+ </target-to-native>
+ </conversion-rule>
+ </primitive-type>
+
<primitive-type name="QAnyStringView" target-lang-api-name="PyUnicode" view-on="QString">
<include file-name="QAnyStringView" location="global"/>
<conversion-rule>
@@ -235,6 +282,9 @@
</primitive-type>
<primitive-type name="QVariant" target-lang-api-name="PyObject">
+ <extra-includes>
+ <include file-name="optional" location="global"/>
+ </extra-includes>
<conversion-rule>
<native-to-target file="../glue/qtcore.cpp" snippet="return-qvariant"/>
<target-to-native>
@@ -244,7 +294,6 @@
<add-conversion type="QByteArray" file="../glue/qtcore.cpp" snippet="conversion-qbytearray"/>
<add-conversion type="PyFloat" check="PyFloat_CheckExact(%in)" file="../glue/qtcore.cpp" snippet="conversion-pyfloat"/>
<add-conversion type="PyLong" check="PyLong_CheckExact(%in)" file="../glue/qtcore.cpp" snippet="conversion-qlonglong"/>
- <add-conversion type="SbkEnumType" file="../glue/qtcore.cpp" snippet="conversion-sbkobject"/>
<add-conversion type="SbkObject" file="../glue/qtcore.cpp" snippet="conversion-sbkobject"/>
<add-conversion type="PyDict" check="PyDict_CheckExact(%in)" file="../glue/qtcore.cpp" snippet="conversion-pydict"/>
<add-conversion type="PyList" check="PyList_Check(%in)" file="../glue/qtcore.cpp" snippet="conversion-pylist"/>
@@ -271,24 +320,24 @@
</conversion-rule>
</primitive-type>
- <value-type name="QCborError" since="5.12">
+ <value-type name="QCborError">
<enum-type name="Code"/>
<include file-name="qcborcommon.h" location="global"/>
</value-type>
- <value-type name="QCborParserError" since="5.12">
+ <value-type name="QCborParserError">
<include file-name="qcborvalue.h" location="global"/>
</value-type>
- <value-type name="QCborValue" since="5.12">
+ <value-type name="QCborValue">
<enum-type name="EncodingOption" flags="EncodingOptions"/>
<enum-type name="DiagnosticNotationOption" flags="DiagnosticNotationOptions"/>
<enum-type name="Type"/>
</value-type>
- <value-type name="QCborArray" since="5.12"/>
- <value-type name="QCborMap" since="5.12"/>
+ <value-type name="QCborArray"/>
+ <value-type name="QCborMap"/>
- <object-type name="QCborStreamReader" since="5.12">
+ <object-type name="QCborStreamReader">
<enum-type name="StringResultCode"/>
<enum-type name="Type"/>
<include file-name="qcborstream.h" location="global"/>
@@ -298,9 +347,9 @@
<!-- 32bit (qsizetype = int) -->
<modify-function signature="readStringChunk(char*,int)" remove="all"/>
</object-type>
- <typedef-type name="QCborStringResultString" source="QCborStreamReader::StringResult&lt;QString&gt;" since="5.12"/>
- <typedef-type name="QCborStringResultByteArray" source="QCborStreamReader::StringResult&lt;QByteArray&gt;" since="5.12"/>
- <object-type name="QCborStreamWriter" since="5.12">
+ <typedef-type name="QCborStringResultString" source="QCborStreamReader::StringResult&lt;QString&gt;"/>
+ <typedef-type name="QCborStringResultByteArray" source="QCborStreamReader::StringResult&lt;QByteArray&gt;"/>
+ <object-type name="QCborStreamWriter">
<include file-name="qcborstream.h" location="global"/>
</object-type>
@@ -313,18 +362,36 @@
</conversion-rule>
</primitive-type>
- <value-type name="QKeyCombination"/>
+ <value-type name="QKeyCombination">
+ <!-- The following do-nothing function is needed for coercion of constructs like
+ QKeyCombination(Qt.CTRL | Qt.Key_B)
+ -->
+ <add-function signature="QKeyCombination(QKeyCombination)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="keycombination-from-keycombination"/>
+ </add-function>
+ <!-- This is just a copy of KeyModifier to handle Modifier the same -->
+ <add-function signature="QKeyCombination(Qt::Modifier @modifiers@, Qt::Key @key@)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="keycombination-from-modifier"/>
+ </add-function>
+ </value-type>
<value-type name="QMetaType">
<extra-includes>
<include file-name="pysidemetatype.h" location="global"/>
</extra-includes>
- <enum-type name="Type"/>
+ <enum-type name="Type" python-type="IntEnum"/>
<enum-type name="TypeFlag" flags="TypeFlags"/>
<add-function signature="QMetaType(PyTypeObject*)">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
snippet="metatype-from-type"/>
</add-function>
+ <!-- PYSIDE-1735: The class QMetaType.Type must be allowed because int is gone -->
+ <add-function signature="QMetaType(QMetaType::Type)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="metatype-from-metatype-type"/>
+ </add-function>
<conversion-rule>
<native-to-target file="../glue/qtcore.cpp" snippet="conversion-qmetatype-pytypeobject"/>
<target-to-native>
@@ -333,6 +400,10 @@
</conversion-rule>
</value-type>
+ <value-type name="QNativeIpcKey" since="6.6">
+ <enum-type name="Type"/>
+ </value-type>
+
<container-type name="QSet" type="set">
<include file-name="QSet" location="global"/>
<conversion-rule>
@@ -349,7 +420,7 @@
<!-- FIXME: Which one is it going to be? -->
<container-type name="QList" type="list"
- opaque-containers="int:QIntList;QPoint:QPointList;QPointF:QPointFList;QVector2D:QVector2DList;QVector3D:QVector3DList;QVector4D:QVector4DList">
+ opaque-containers="int:QIntList;QPoint:QPointList;QPointF:QPointFList">
<include file-name="QList" location="global"/>
<declare-function signature="append(T)" return-type="void"/>
<declare-function signature="insert(qsizetype,T)" return-type="void"/>
@@ -402,7 +473,6 @@
<container-type name="QHash" type="hash">
<include file-name="QHash" location="global"/>
<!-- Include to make enum flags work. -->
- <include file-name="pysideqflags.h" location="global"/>
<conversion-rule>
<native-to-target>
<insert-template name="shiboken_conversion_qmap_to_pydict"/>
@@ -418,7 +488,6 @@
<container-type name="QMultiHash" type="multi-hash">
<include file-name="QMultiHash" location="global"/>
<!-- Include to make enum flags work. -->
- <include file-name="pysideqflags.h" location="global"/>
<conversion-rule>
<native-to-target>
<insert-template name="shiboken_conversion_qmultihash_to_pydict"/>
@@ -431,6 +500,8 @@
</conversion-rule>
</container-type>
+ <value-type name="QHashSeed" since="6.2"/>
+
<container-type name="QMap" type="map">
<include file-name="QMap" location="global"/>
<conversion-rule>
@@ -480,54 +551,29 @@
<rejection class="*" field-name="d"/>
<rejection class="*" field-name="staticMetaObject"/>
<!-- not support array in property -->
- <rejection class="QTextCodec::ConverterState" field-name="state_data"/>
<rejection class="QUuid" field-name="data1"/>
<rejection class="QUuid" field-name="data2"/>
<rejection class="QUuid" field-name="data3"/>
<rejection class="QUuid" field-name="data4"/>
- <rejection class="" enum-name="QtValidLicenseForTestModule"/>
- <rejection class="" enum-name="QtValidLicenseForDBusModule"/>
- <rejection class="" enum-name="QtValidLicenseForSqlModule"/>
- <rejection class="" enum-name="QtValidLicenseForOpenGLModule"/>
- <rejection class="" enum-name="QtValidLicenseForScriptToolsModule"/>
- <rejection class="" enum-name="__codecvt_result"/>
- <rejection class="" enum-name="enum_1"/>
- <rejection class="" enum-name="enum_2"/>
- <rejection class="" enum-name="QtValidLicenseForXmlModule"/>
- <rejection class="" enum-name="QtValidLicenseForActiveQtModule"/>
- <rejection class="" enum-name="QtValidLicenseForCoreModule"/>
- <rejection class="" enum-name="QtValidLicenseForNetworkModule"/>
- <rejection class="" enum-name="QtValidLicenseForSvgModule"/>
- <rejection class="" enum-name="QtValidLicenseForGuiModule"/>
- <rejection class="" enum-name="QtValidLicenseForHelpModule"/>
<!-- Internal -->
- <rejection class="QAbstractFileEngine"/> <!--
- <rejection class="QAbstractFileEngine" function-name="endEntryList"/>
- <rejection class="QAbstractFileEngine" function-name="extension"/> XXX -->
<rejection class="QCoreApplication" function-name="compressEvent"/>
- <rejection class="QCoreApplication" function-name="eventFilter"/>
- <rejection class="QCoreApplication" function-name="filterEvent"/>
- <rejection class="QCoreApplication" function-name="setEventFilter"/>
- <rejection class="QFile" function-name="setDecodingFunction"/>
- <rejection class="QFile" function-name="setEncodingFunction"/>
- <rejection class="QRegion" function-name="cleanUp"/>
- <rejection class="QSettings" function-name="registerFormat"/>
<namespace-type name="Qt">
<extra-includes>
<include file-name="QtCore/QProperty" location="global"/>
</extra-includes>
- <enum-type name="AlignmentFlag" flags="Alignment"/>
+ <enum-type name="AlignmentFlag" python-type="IntFlag" flags="Alignment"/>
<enum-type name="AnchorPoint" since="4.6"/>
+ <enum-type name="ColorScheme" since="6.5"/>
<enum-type name="ApplicationAttribute"/>
- <enum-type name="ApplicationState" flags="ApplicationStates" since="5.1"/>
+ <enum-type name="ApplicationState" flags="ApplicationStates"/>
<enum-type name="ArrowType"/>
<enum-type name="AspectRatioMode"/>
<enum-type name="Axis"/>
<enum-type name="BGMode"/>
<enum-type name="BrushStyle"/>
<enum-type name="CaseSensitivity"/>
- <enum-type name="ChecksumType" since="5.9"/>
+ <enum-type name="ChecksumType"/>
<enum-type name="CheckState"/>
<enum-type name="ClipOperation"/>
<enum-type name="ConnectionType"/>
@@ -540,57 +586,58 @@
<enum-type name="DockWidgetArea" flags="DockWidgetAreas"/>
<enum-type name="DockWidgetAreaSizes"/>
<enum-type name="DropAction" flags="DropActions"/>
- <enum-type name="Edge" flags="Edges" since="5.1"/>
+ <enum-type name="Edge" flags="Edges"/>
<enum-type name="EventPriority"/>
<enum-type name="FillRule"/>
- <enum-type name="FindChildOption" flags="FindChildOptions" since="5.0"/>
- <enum-type name="FocusPolicy"/>
+ <enum-type name="FindChildOption" flags="FindChildOptions"/>
+ <enum-type name="FocusPolicy" python-type="IntFlag"/>
<enum-type name="FocusReason"/>
<enum-type name="GestureFlag" flags="GestureFlags" since="4.6"/>
<enum-type name="GestureState" since="4.6"/>
- <enum-type name="GestureType" since="4.6"/>
+ <enum-type name="GestureType" python-type="IntEnum" since="4.6"/>
<enum-type name="GlobalColor"/>
- <enum-type name="HighDpiScaleFactorRoundingPolicy" since="5.14"/>
+ <enum-type name="HighDpiScaleFactorRoundingPolicy"/>
<enum-type name="HitTestAccuracy"/>
<enum-type name="ImageConversionFlag" flags="ImageConversionFlags"/>
<enum-type name="InputMethodHint" flags="InputMethodHints" since="4.6"/>
<enum-type name="InputMethodQuery" flags="InputMethodQueries"/>
- <enum-type name="EnterKeyType" since="5.6"/>
- <enum-type name="ItemDataRole"/>
+ <enum-type name="EnterKeyType"/>
+ <enum-type name="ItemDataRole" python-type="IntEnum"/>
<enum-type name="ItemFlag" flags="ItemFlags"/>
<enum-type name="ItemSelectionMode"/>
- <enum-type name="ItemSelectionOperation" since="5.5"/>
- <enum-type name="Key"/>
+ <enum-type name="ItemSelectionOperation"/>
+ <enum-type name="Key" python-type="IntEnum"/>
<enum-type name="KeyboardModifier" flags="KeyboardModifiers"/>
<enum-type name="LayoutDirection"/>
<enum-type name="MaskMode"/>
<enum-type name="MatchFlag" flags="MatchFlags"/>
- <enum-type name="Modifier"/>
+ <enum-type name="Modifier" python-type="Flag"/>
<enum-type name="MouseButton" flags="MouseButtons"/>
- <enum-type name="MouseEventFlag" flags="MouseEventFlags" since="5.3"/>
- <enum-type name="MouseEventSource" since="5.3"/>
- <enum-type name="NativeGestureType" since="5.0"/>
+ <enum-type name="MouseEventFlag" flags="MouseEventFlags"/>
+ <enum-type name="MouseEventSource"/>
+ <enum-type name="NativeGestureType"/>
<enum-type name="NavigationMode" since="4.6"/>
<enum-type name="Orientation" flags="Orientations"/>
<enum-type name="PenCapStyle"/>
<enum-type name="PenJoinStyle"/>
<enum-type name="PenStyle"/>
- <enum-type name="ReturnByValueConstant" since="6.0"/>
- <enum-type name="ScreenOrientation" flags="ScreenOrientations" since="5.0"/>
+ <enum-type name="PermissionStatus" since="6.5"/>
+ <enum-type name="ReturnByValueConstant"/>
+ <enum-type name="ScreenOrientation" flags="ScreenOrientations"/>
<enum-type name="ScrollBarPolicy"/>
- <enum-type name="ScrollPhase" since="5.2"/>
+ <enum-type name="ScrollPhase"/>
<enum-type name="ShortcutContext"/>
<enum-type name="SizeHint"/>
<enum-type name="SizeMode"/>
<enum-type name="SortOrder"/>
- <enum-type name="SplitBehaviorFlags" flags="SplitBehavior" since="5.14"/>
- <enum-type name="TabFocusBehavior" since="5.5"/>
+ <enum-type name="SplitBehaviorFlags" flags="SplitBehavior"/>
+ <enum-type name="TabFocusBehavior"/>
<enum-type name="TextElideMode"/>
- <enum-type name="TextFlag"/>
+ <enum-type name="TextFlag" python-type="IntFlag"/>
<enum-type name="TextFormat"/>
<enum-type name="TextInteractionFlag" flags="TextInteractionFlags"/>
<enum-type name="TileRule" since="4.6"/>
- <enum-type name="TimerType" since="5.0"/>
+ <enum-type name="TimerType"/>
<enum-type name="TimeSpec"/>
<enum-type name="ToolBarArea" flags="ToolBarAreas"/>
<enum-type name="ToolBarAreaSizes"/>
@@ -603,17 +650,11 @@
<enum-type name="WindowFrameSection"/>
<enum-type name="WindowModality"/>
<enum-type name="WindowState" flags="WindowStates"/>
- <enum-type name="WindowType" flags="WindowFlags"/>
+ <enum-type name="WindowType" python-type="IntFlag" flags="WindowFlags"/>
<enum-type name="CursorMoveStyle" since="4.8" revision="4800"/>
- <modify-function signature="^operator.\(Qt::AlignmentFlag,Qt::TextFlag\)$"
- remove="all"/>
- <modify-function signature="^operator.\(Qt::TextFlag,Qt::AlignmentFlag\)$"
- remove="all"/>
- <modify-function signature="^operator.\(Qt::TextElideMode,Qt::TextFlag\)$"
- remove="all"/>
- <modify-function signature="^operator.\(Qt::TextFlag,Qt::TextElideMode\)$"
- remove="all"/>
+ <inject-code class="target" position="end" file="../glue/qtcore.cpp"
+ snippet="qt-modifier"/>
</namespace-type>
<add-function signature="QEnum(PyObject*)" return-type="PyObject*">
@@ -648,11 +689,13 @@
<inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="qt-pysideinit"/>
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qt-messagehandler"/>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qlatin1string-check"/>
<add-function signature="qInstallMessageHandler(PyObject)" return-type="PyObject">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qt-installmessagehandler"/>
</add-function>
- <value-type name="QDeadlineTimer" since="5.8">
+ <value-type name="QDeadlineTimer">
<enum-type name="ForeverConstant"/>
</value-type>
@@ -660,7 +703,8 @@
<enum-type name="ClockType" since="4.7"/>
</value-type>
- <object-type name="QAbstractTableModel" polymorphic-id-expression="qobject_cast&lt;QAbstractTableModel*&gt;(%1)">
+ <object-type name="QAbstractTableModel"
+ polymorphic-id-expression="qobject_cast&lt;QAbstractTableModel*&gt;(%B)">
<extra-includes>
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
@@ -730,14 +774,14 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[PySide6.QtCore.QLineF.IntersectionType, PySide6.QtCore.QPointF]">
<replace-type modified-type="(intersectType, intersectionPoint)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qlinef-intersect"/>
</modify-function>
</value-type>
<object-type name="QResource">
- <enum-type name="Compression" since="5.13"/>
+ <enum-type name="Compression"/>
<modify-function signature="data()const">
<inject-documentation format="target">
Returns a read only buffer object pointing to the segment of data that this resource represents. If the resource is compressed the data returns is compressed and qUncompress() must be used to access the data. If the resource is a directory None is returned.
@@ -764,25 +808,20 @@
<object-type name="QBasicTimer"/>
<value-type name="QByteArrayMatcher"/>
- <value-type name="QCalendar" since="5.14">
+ <value-type name="QCalendar">
<object-type name="SystemId"/> <!-- not default-constructible -->
<value-type name="YearMonthDay"/>
<enum-type name="System"/>
<enum-type identified-by-value="Unspecified"/>
</value-type>
- <value-type name="QDate" hash-function="PySide::hash" >
- <extra-includes>
- <include file-name="pysideqhash.h" location="global"/>
- </extra-includes>
- <inject-code class="native" position="beginning">
- <insert-template name="pydatetime_importandcheck_function">
- <replace from="$DATETIMETYPE" to="PyDate"/>
- </insert-template>
- </inject-code>
+ <value-type name="QDate">
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="core-snippets-p-h"/>
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None" file="../glue/qtcore.cpp" snippet="conversion-pynone"/>
- <add-conversion type="PyDate" check="PyDateTime_ImportAndCheck(%in)" file="../glue/qtcore.cpp" snippet="conversion-qdate-pydate"/>
+ <add-conversion type="PyDate" check="PyDate_ImportAndCheck(%in)"
+ file="../glue/qtcore.cpp" snippet="conversion-qdate-pydate"/>
</target-to-native>
</conversion-rule>
<extra-includes>
@@ -818,7 +857,7 @@
<modify-argument index="3">
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, int, int]">
<replace-type modified-type="(year, month, day)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdate-getdate"/>
@@ -827,26 +866,22 @@
<modify-argument index="1">
<remove-argument/>
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, int]">
<replace-type modified-type="(week, yearNumber)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdate-weeknumber"/>
</modify-function>
</value-type>
- <value-type name="QDateTime" hash-function="PySide::hash">
- <extra-includes>
- <include file-name="pysideqhash.h" location="global"/>
- </extra-includes>
- <enum-type name="YearRange" since="5.14"/>
- <inject-code class="native" position="beginning">
- <insert-template name="pydatetime_importandcheck_function">
- <replace from="$DATETIMETYPE" to="PyDateTime"/>
- </insert-template>
- </inject-code>
+ <value-type name="QDateTime">
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="core-snippets-p-h"/>
+ <enum-type name="YearRange"/>
+ <enum-type name="TransitionResolution" since="6.7"/>
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None" file="../glue/qtcore.cpp" snippet="conversion-pynone"/>
- <add-conversion type="PyDateTime" check="PyDateTime_ImportAndCheck(%in)" file="../glue/qtcore.cpp" snippet="conversion-qdatetime-pydatetime"/>
+ <add-conversion type="PyDateTime" check="PyDateTime_ImportAndCheck(%in)"
+ file="../glue/qtcore.cpp" snippet="conversion-qdatetime-pydatetime"/>
</target-to-native>
</conversion-rule>
<extra-includes>
@@ -859,6 +894,10 @@
<add-function signature="QDateTime(int,int,int,int,int,int)">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdatetime-2"/>
</add-function>
+ <!-- PYSIDE-1735: Qt::TimeSpec is no more compatible with int -->
+ <add-function signature="QDateTime(int,int,int,int,int,int,int,Qt::TimeSpec=Qt::LocalTime)">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdatetime-3"/>
+ </add-function>
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -916,10 +955,34 @@
</add-function>
</value-type>
- <value-type name="QPoint" hash-function="PySide::hash">
- <extra-includes>
- <include file-name="pysideqhash.h" location="global"/>
- </extra-includes>
+ <value-type name="QPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ </value-type>
+ <value-type name="QBluetoothPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ <enum-type name="CommunicationMode" flags="CommunicationModes" since="6.6"/>
+ </value-type>
+ <value-type name="QCalendarPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ <enum-type name="AccessMode"/>
+ </value-type>
+ <value-type name="QCameraPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ </value-type>
+ <value-type name="QContactsPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ <enum-type name="AccessMode"/>
+ </value-type>
+ <value-type name="QLocationPermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ <enum-type name="Accuracy"/>
+ <enum-type name="Availability"/>
+ </value-type>
+ <value-type name="QMicrophonePermission" since="6.5">
+ <configuration condition="QT_CONFIG(permissions)"/>
+ </value-type>
+
+ <value-type name="QPoint">
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -937,7 +1000,6 @@
</insert-template>
</inject-code>
</add-function>
- <inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qpoint"/>
<add-function signature="toTuple" return-type="PyObject*">
<inject-code class="target" position="beginning">
@@ -986,10 +1048,7 @@
<modify-function signature="ry()" remove="all"/>
<!--### -->
</value-type>
- <value-type name="QRect" hash-function="PySide::hash">
- <extra-includes>
- <include file-name="pysideqhash.h" location="global"/>
- </extra-includes>
+ <value-type name="QRect">
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -1006,7 +1065,6 @@
</insert-template>
</inject-code>
</add-function>
- <inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qrect"/>
<modify-function signature="getCoords(int*,int*,int*,int*)const">
<modify-argument index="return">
@@ -1120,10 +1178,7 @@
</inject-code>
</modify-function>
</value-type>
- <value-type name="QSize" hash-function="PySide::hash">
- <extra-includes>
- <include file-name="pysideqhash.h" location="global"/>
- </extra-includes>
+ <value-type name="QSize">
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
<insert-template name="repr_code">
@@ -1141,7 +1196,6 @@
</insert-template>
</inject-code>
</add-function>
- <inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qsize"/>
<add-function signature="toTuple" return-type="PyObject*">
<inject-code class="target" position="beginning">
@@ -1191,19 +1245,14 @@
<!--### -->
</value-type>
- <value-type name="QTime" hash-function="PySide::hash">
- <extra-includes>
- <include file-name="pysideqhash.h" location="global"/>
- </extra-includes>
- <inject-code class="native" position="beginning">
- <insert-template name="pydatetime_importandcheck_function">
- <replace from="$DATETIMETYPE" to="PyTime"/>
- </insert-template>
- </inject-code>
+ <value-type name="QTime">
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="core-snippets-p-h"/>
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None" file="../glue/qtcore.cpp" snippet="conversion-pynone"/>
- <add-conversion type="PyTime" check="PyDateTime_ImportAndCheck(%in)" file="../glue/qtcore.cpp" snippet="conversion-qtime-pytime"/>
+ <add-conversion type="PyTime" check="PyTime_ImportAndCheck(%in)"
+ file="../glue/qtcore.cpp" snippet="conversion-qtime-pytime"/>
</target-to-native>
</conversion-rule>
@@ -1240,6 +1289,7 @@
qRegisterMetaType&lt;QList&lt;QPersistentModelIndex&gt; &gt;("QList_QPersistentModelIndex");
</inject-code>
<modify-function signature="internalPointer()const">
+ <modify-argument index="return" pyi-type="Any"/>
<inject-code class="target" position="beginning">
<insert-template name="return_internal_pointer" />
</inject-code>
@@ -1252,13 +1302,17 @@
</value-type>
<value-type name="QTimeZone">
+ <configuration condition="QT_CONFIG(timezone)"/>
+ <enum-type name="Initialization" since="6.5"/>
<enum-type name="TimeType"/>
<enum-type name="NameType"/>
- <value-type name="OffsetData"/>
+ <value-type name="OffsetData">
+ <configuration condition="QT_CONFIG(timezone)"/>
+ </value-type>
</value-type>
<value-type name="QUuid">
- <enum-type name="StringFormat" since="5.11"/>
+ <enum-type name="StringFormat"/>
<enum-type name="Variant"/>
<enum-type name="Version"/>
<add-function signature="__repr__" return-type="PyObject*">
@@ -1279,18 +1333,19 @@
</add-function>
</value-type>
- <value-type name="QMimeType" since="5.0"/>
- <object-type name="QMimeDatabase" since="5.0">
+ <value-type name="QMimeType"/>
+ <object-type name="QMimeDatabase">
<enum-type name="MatchMode"/>
</object-type>
<value-type name="QLocale">
+ <enum-type name="TagSeparator" since="6.7"/>
<enum-type name="Country"/>
- <enum-type name="DataSizeFormat" flags="DataSizeFormats" since="5.10"/>
- <enum-type name="FloatingPointPrecisionOption" since="5.7"/>
+ <enum-type name="DataSizeFormat" flags="DataSizeFormats"/>
+ <enum-type name="FloatingPointPrecisionOption" python-type="IntEnum"/>
<enum-type name="FormatType"/>
<enum-type name="Language"/>
- <enum-type name="LanguageCodeType" flags="LanguageCodeTypes" since="6.3"/>
+ <enum-type name="LanguageCodeType" python-type="IntFlag" flags="LanguageCodeTypes" since="6.3"/>
<enum-type name="MeasurementSystem"/>
<enum-type name="NumberOption" flags="NumberOptions"/>
<enum-type name="Script" since="4.8" revision="4800"/>
@@ -1300,26 +1355,60 @@
<modify-function signature="toString(qulonglong)const" remove="all"/>
<modify-function signature="toString(ushort)const" remove="all"/>
<modify-function signature="toString(unsigned int)const" remove="all"/>
+ <modify-function signature="system()" remove="all"/>
<!--### -->
<extra-includes>
<include file-name="QDate" location="global"/>
</extra-includes>
+ <add-function signature="system()" return-type="QLocale" static="yes">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qlocale_system"/>
+ <inject-documentation mode="append" format="target">
+ Returns a QLocale object initialized to the system locale.
+
+ The system locale may use system-specific sources for locale data, where available,
+ otherwise falling back on QLocale's built-in database entry for the language, script and
+ territory the system reports.
+
+ For example, on Windows, this locale will use the decimal/grouping characters and
+ date/time formats specified in the system configuration panel.
+
+ .. note:: Qt for Python on macOS will not reflect the user's region and language
+ preferences though QLocale::system(), but will instead reflect the environment
+ variables POSIX uses to specify locale, similar to Python's locale module. If the
+ system locale cannot be determined, which can be due to none of the variables 'LC_ALL',
+ 'LC_CTYPE', 'LANG' or 'LANGUAGE' being set by your environment, then the default POSIX
+ locale or 'C' locale is returned.
+
+ See also c().
+ </inject-documentation>
+ </add-function>
<modify-function signature="toTime(QString,QLocale::FormatType)const">
<modify-argument index="2">
<rename to="format"/>
</modify-argument>
</modify-function>
- <modify-function signature="toDate(QString,QLocale::FormatType)const">
+ <modify-function signature="toDate(QString,QLocale::FormatType,int)const">
<modify-argument index="2">
<rename to="format"/>
</modify-argument>
</modify-function>
+ <modify-function signature="^toDate(Time)?\(QString,[^,]+,int\)const$">
+ <modify-argument index="3">
+ <replace-default-expression with="1900"/> <!-- private FirstTwoDigitYear -->
+ </modify-argument>
+ </modify-function>
+ <modify-function signature="^toDate(Time)?\(QString,[^,]+,QCalendar,int\)const$">
+ <modify-argument index="4">
+ <replace-default-expression with="1900"/> <!-- private FirstTwoDigitYear -->
+ </modify-argument>
+ </modify-function>
<modify-function signature="toUInt(QString,bool*)const">
<modify-argument index="2">
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1331,7 +1420,7 @@
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1343,7 +1432,7 @@
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[float, bool]">
<replace-type modified-type="(float, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1355,7 +1444,7 @@
<remove-argument />
<remove-default-expression />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[float, bool]">
<replace-type modified-type="(float, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1366,7 +1455,7 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1377,7 +1466,18 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
+ <replace-type modified-type="(int, bool ok)"/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_args,bool*"/>
+ </inject-code>
+ </modify-function>
+ <modify-function signature="toLong(QString,bool*)const">
+ <modify-argument index="2">
+ <remove-argument />
+ </modify-argument>
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1388,7 +1488,7 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
@@ -1399,13 +1499,18 @@
<modify-argument index="2">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[int, bool]">
<replace-type modified-type="(int, bool ok)"/>
</modify-argument>
<inject-code class="target" position="beginning">
<insert-template name="fix_args,bool*"/>
</inject-code>
</modify-function>
+ <!-- PYSIDE-2133, 2168 remove unsigned overloads of to(Currency)?String() to
+ ensure float overloads are used -->
+ <modify-function signature="^to(Currency)?String\(q?u.*$" remove="all"/>
+ <modify-function signature="^to(Currency)?String\(.*short.*$" remove="all"/>
+ <modify-function signature="^to.*\(.*QStringView.*$" remove="all"/>
</value-type>
<value-type name="QBitArray">
<add-function signature="__len__">
@@ -1425,6 +1530,16 @@
<modify-function signature="removeStaleLockFile()" allow-thread="yes"/>
<modify-function signature="tryLock(int)" allow-thread="yes"/>
<modify-function signature="unlock()" allow-thread="yes"/>
+ <modify-function signature="getLockInfo(qint64*,QString*,QString*)const">
+ <modify-argument index="return" pyi-type="Tuple[int, str, str]">
+ <replace-type modified-type="(int, str, str)"/>
+ </modify-argument>
+ <modify-argument index="1"><remove-argument/></modify-argument>
+ <modify-argument index="2"><remove-argument/></modify-argument>
+ <modify-argument index="3"><remove-argument/></modify-argument>
+ <inject-code class="target" position="beginning"
+ file="../glue/qtcore.cpp" snippet="qlockfile-getlockinfo"/>
+ </modify-function>
</object-type>
<object-type name="QMessageAuthenticationCode"/>
<object-type name="QSignalBlocker">
@@ -1445,6 +1560,7 @@
<modify-function signature="tryLockForWrite(int)" allow-thread="yes"/>
</object-type>
<object-type name="QReadLocker">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="QReadLocker(QReadWriteLock*)">
<modify-argument index="1">
<reference-count action="set"/>
@@ -1459,6 +1575,7 @@
</add-function>
</object-type>
<object-type name="QWriteLocker">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="QWriteLocker(QReadWriteLock*)">
<modify-argument index="1">
<reference-count action="set"/>
@@ -1476,6 +1593,7 @@
<enum-type name="IteratorFlag" flags="IteratorFlags"/>
</object-type>
<object-type name="QThread">
+ <configuration condition="QT_CONFIG(thread)"/>
<inject-code file="../glue/qtcore.cpp" class="native" position="beginning" snippet="qthread_pthread_cleanup"/>
<enum-type name="Priority"/>
<modify-function signature="currentThreadId()" remove="all"/>
@@ -1509,7 +1627,7 @@
<value-type name="QModelRoleData"/>
<object-type name="QAbstractItemModel">
- <enum-type name="CheckIndexOption" flags="CheckIndexOptions" since="5.11"/>
+ <enum-type name="CheckIndexOption" flags="CheckIndexOptions"/>
<enum-type name="LayoutChangeHint"/>
<!-- This function was replaced by a added function -->
<modify-function signature="createIndex(int,int,const void*)const" remove="all"/>
@@ -1545,12 +1663,6 @@
<modify-argument index="return">
<define-ownership class="native" owner="c++"/>
</modify-argument>
- <inject-code class="native" position="end" file="../glue/qtcore.cpp"
- snippet="qabstractitemmodel_data"/>
- </modify-function>
- <modify-function signature="headerData(int,Qt::Orientation,int)const">
- <inject-code class="native" position="end" file="../glue/qtcore.cpp"
- snippet="qabstractitemmodel_data"/>
</modify-function>
<modify-function signature="dataChanged(const QModelIndex&amp;,const QModelIndex&amp;,const QVector&lt;int&gt;&amp;)" allow-thread="yes"/>
<modify-function signature="layoutAboutToBeChanged(const QList&lt;QPersistentModelIndex&gt;&amp;,QAbstractItemModel::LayoutChangeHint)" allow-thread="yes"/>
@@ -1566,8 +1678,9 @@
<add-function signature="operator==(const QItemSelection&amp;)" return-type="bool"/>
<add-function signature="operator!=(const QItemSelection&amp;)" return-type="bool"/>
<!-- For some reason, the empty selection is not seen. Maybe related to the new [default]
- tag in Qt6? -->
- <declare-function signature="QItemSelection()" return-type="QItemSelection" />
+ tag in Qt6?
+ PYSIDE-2756: The return-type attribute is unnecessary -->
+ <declare-function signature="QItemSelection()"/>
<!-- The __add__ function creates a result list, instead of using the inherited type.
Fixed by adding with the correct type. -->
<add-function signature="operator+(QItemSelection)" return-type="QItemSelection">
@@ -1584,14 +1697,15 @@
<value-type name="QItemSelectionRange">
</value-type>
- <object-type name="QAbstractProxyModel" polymorphic-id-expression="qobject_cast&lt;QAbstractProxyModel*&gt;(%1)">
+ <object-type name="QAbstractProxyModel"
+ polymorphic-id-expression="qobject_cast&lt;QAbstractProxyModel*&gt;(%B)">
<extra-includes>
<include file-name="QItemSelection" location="global"/>
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
</extra-includes>
</object-type>
- <object-type name="QConcatenateTablesProxyModel" since="5.13"/>
+ <object-type name="QConcatenateTablesProxyModel"/>
<object-type name="QSortFilterProxyModel">
<extra-includes>
<include file-name="QItemSelection" location="global"/>
@@ -1605,22 +1719,25 @@
</modify-function>
</object-type>
<object-type name="QIdentityProxyModel"/>
- <object-type name="QTransposeProxyModel" since="5.13"/>
+ <object-type name="QTransposeProxyModel"/>
<!-- QObject is created manually -->
<object-type name="QObject" parent-management="true">
<extra-includes>
<include file-name="QThread" location="global"/>
<include file-name="QCoreApplication" location="global"/>
<include file-name="signalmanager.h" location="local"/>
- <include file-name="glue/core_snippets_p.h" location="local"/>
</extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="core-snippets-p-h"/>
<modify-function signature="metaObject()const">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-metaobject"/>
<modify-argument index="return">
<reference-count action="set"/>
</modify-argument>
</modify-function>
-
+ <!-- FIXME PYSIDE 7: Remove this (QT6_DECL_NEW_OVERLOAD_TAIL) -->
+ <modify-function signature="^moveToThread\(.*\)" remove="all"/>
+ <declare-function signature="moveToThread(QThread*)" return-type="bool"/>
<modify-function signature="deleteLater()">
<modify-argument index="this">
<define-ownership owner="c++"/>
@@ -1644,9 +1761,6 @@
</modify-function>
<!-- End of Invalidate-after-use fix -->
<modify-function signature="parent()const">
- <modify-argument index="this">
- <parent index="return" action="add"/>
- </modify-argument>
<modify-argument index="return">
<define-ownership class="target" owner="default"/>
</modify-argument>
@@ -1655,50 +1769,63 @@
<modify-argument index="this">
<parent index="1" action="add"/>
</modify-argument>
+ <modify-argument index="1" pyi-type="Optional[PySide6.QtCore.QObject]"/>
</modify-function>
- <modify-function signature="connect(const QObject*,const char*,const char*,Qt::ConnectionType)const">
- <modify-argument index="4">
- <rename to="type"/>
- </modify-argument>
+ <!-- Manual overload order fixes PYSIDE-2627
+
+ The addition of the qobject-connect-4-context overload resulted in an
+ automatic overload ordering that prevented the right overload from
+ ever being called if the callable was a QObject. Set a manual order to
+ fix this. -->
+ <modify-function signature="connect(const QObject*,const char*,const char*,Qt::ConnectionType)const"
+ overload-number="0">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-1"/>
</modify-function>
<!-- static version -->
- <modify-function signature="connect(const QObject*,QMetaMethod,const QObject*,QMetaMethod,Qt::ConnectionType)">
- <modify-argument index="5">
- <rename to="type"/>
- </modify-argument>
+ <modify-function signature="connect(const QObject*,QMetaMethod,const QObject*,QMetaMethod,Qt::ConnectionType)"
+ overload-number="1">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-2"/>
</modify-function>
- <modify-function signature="connect(const QObject*,const char*,const QObject*,const char*,Qt::ConnectionType)">
+ <modify-function signature="connect(const QObject*,const char*,const QObject*,const char*,Qt::ConnectionType)"
+ overload-number="2">
<modify-argument index="5">
<rename to="type"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-3"/>
</modify-function>
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect"/>
- <add-function signature="connect(const QObject*,const char*,PyCallable*,Qt::ConnectionType@type@=Qt::AutoConnection)"
- return-type="QMetaObject::Connection" static="yes">
+ <add-function signature="connect(const QObject*@sender@,const char*@signal@,PyCallable*@functor@,Qt::ConnectionType@type@=Qt::AutoConnection)"
+ return-type="QMetaObject::Connection" static="yes" overload-number="3">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-4"/>
</add-function>
+ <add-function signature="connect(const QObject*@sender@,const char*@signal@,const QObject*@context@,PyCallable*@functor@,Qt::ConnectionType@type@=Qt::AutoConnection)"
+ return-type="QMetaObject::Connection" static="yes" overload-number="4">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-4-context"/>
+ </add-function>
<!-- static version -->
- <add-function signature="connect(const char*,PyCallable*,Qt::ConnectionType@type@=Qt::AutoConnection)"
- return-type="QMetaObject::Connection">
+ <add-function signature="connect(const char*@signal@,PyCallable*@functor@,Qt::ConnectionType@type@=Qt::AutoConnection)"
+ return-type="QMetaObject::Connection" overload-number="5">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-5"/>
</add-function>
- <add-function signature="connect(const char*,const QObject*,const char*,Qt::ConnectionType@type@=Qt::AutoConnection)"
- return-type="QMetaObject::Connection">
+ <add-function signature="connect(const char*@signal@,const QObject*@receiver@,const char*@method@,Qt::ConnectionType@type@=Qt::AutoConnection)"
+ return-type="QMetaObject::Connection" overload-number="6">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-connect-6"/>
</add-function>
<add-function signature="emit(const char*,...)" return-type="bool">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-emit"/>
</add-function>
- <add-function signature="disconnect(const char*,PyCallable*)" return-type="bool">
+ <add-function signature="disconnect(const char*@signal@,PyCallable*@functor@)" return-type="bool">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-disconnect-1"/>
</add-function>
- <add-function signature="disconnect(const QObject*,const char*,PyCallable*)" return-type="bool" static="yes">
+ <add-function signature="disconnect(const QObject*@sender@,const char*@signal@,PyCallable*@functor@)" return-type="bool" static="yes">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-disconnect-2"/>
</add-function>
+ <modify-function signature="disconnect(QMetaObject::Connection)">
+ <modify-argument index="1">
+ <rename to="connection"/>
+ </modify-argument>
+ </modify-function>
<add-function signature="findChild(PyTypeObject*@type@,const QString&amp;@name@={},Qt::FindChildOptions@options@=Qt::FindChildrenRecursively)"
@@ -1746,10 +1873,6 @@
</modify-argument>
</add-function>
- <modify-function signature="receivers(const char*)const">
- <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-receivers"/>
- </modify-function>
-
<modify-function signature="destroyed(QObject*)" allow-thread="yes">
<modify-argument index="1">
<rename to="object"/>
@@ -1760,6 +1883,7 @@
<modify-argument index="return">
<define-ownership owner="default"/>
</modify-argument>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qobject-sender"/>
</modify-function>
<!-- This is not supported due the lack of information durring the call with no arguments, this can cause a memory leak -->
@@ -1775,25 +1899,25 @@
</modify-argument>
</modify-function>
</object-type>
- <object-type name="QAbstractListModel" polymorphic-id-expression="qobject_cast&lt;QAbstractListModel*&gt;(%1)">
+ <object-type name="QAbstractListModel"
+ polymorphic-id-expression="qobject_cast&lt;QAbstractListModel*&gt;(%B)">
<extra-includes>
<include file-name="QStringList" location="global"/>
<include file-name="QSize" location="global"/>
</extra-includes>
</object-type>
- <value-type name="QUrlQuery" since="5.0"/>
+ <value-type name="QUrlQuery"/>
- <value-type name="QUrl" hash-function="PySide::hash">
+ <value-type name="QUrl">
<!-- Qt5: lots of changes -->
- <enum-type name="ComponentFormattingOption" flags="ComponentFormattingOptions,FormattingOptions"/>
+ <enum-type name="ComponentFormattingOption" python-type="IntFlag" flags="ComponentFormattingOptions,FormattingOptions"/>
<!-- note: above duplication of attribute is not by default XML compliant! -->
- <enum-type name="UrlFormattingOption"/>
+ <enum-type name="UrlFormattingOption" python-type="IntFlag"/>
<enum-type name="UserInputResolutionOption" flags="UserInputResolutionOptions"/>
<enum-type name="ParsingMode"/>
<enum-type name="AceProcessingOption" flags="AceProcessingOptions" since="6.3"/>
<extra-includes>
<include file-name="QStringList" location="global"/>
- <include file-name="pysideqhash.h" location="global"/>
</extra-includes>
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning">
@@ -1819,7 +1943,7 @@
</value-type>
<value-type name="QRegularExpression">
- <enum-type name="WildcardConversionOption" flags="WildcardConversionOptions" since="6.0"/>
+ <enum-type name="WildcardConversionOption" flags="WildcardConversionOptions"/>
<enum-type name="MatchOption" flags="MatchOptions"/>
<enum-type name="MatchType"/>
<enum-type name="PatternOption" flags="PatternOptions"/>
@@ -1861,9 +1985,9 @@
<!-- PYSIDE-1913: Disable isNull() for bool cast; __len__ should be used
instead so that b"" yields False. -->
<value-type name="QByteArray" isNull="false">
- <enum-type name="Base64Option" flags="Base64Options" since="5.2"/>
- <enum-type name="Base64DecodingStatus" since="5.15"/>
- <value-type name="FromBase64Result" since="5.15"/>
+ <enum-type name="Base64Option" flags="Base64Options"/>
+ <enum-type name="Base64DecodingStatus"/>
+ <value-type name="FromBase64Result"/>
<conversion-rule>
<target-to-native>
<add-conversion type="Py_None" file="../glue/qtcore.cpp" snippet="conversion-pynone"/>
@@ -2103,7 +2227,7 @@
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qbytearray-msetitem"/>
</add-function>
</value-type>
- <primitive-type name="QByteArrayView" view-on="QByteArray" since="6.0">
+ <primitive-type name="QByteArrayView" view-on="QByteArray">
<conversion-rule>
<native-to-target file="../glue/qtcore.cpp" snippet="return-pybytes"/>
</conversion-rule>
@@ -2153,9 +2277,9 @@
<modify-function signature="processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag>)" allow-thread="yes"/>
<modify-function signature="processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag>,int)" allow-thread="yes"/>
</object-type>
- <object-type name="QFileDevice" since="5.0">
+ <object-type name="QFileDevice">
<enum-type name="FileError"/>
- <enum-type name="FileTime" since="5.10"/>
+ <enum-type name="FileTime"/>
<enum-type name="MemoryMapFlag" flags="MemoryMapFlags"/>
<enum-type name="Permission" flags="Permissions"/>
<enum-type name="FileHandleFlag" flags="FileHandleFlags"/>
@@ -2236,12 +2360,21 @@
<modify-function signature="write(const QByteArray&amp;)" allow-thread="yes"/>
<modify-function signature="waitForReadyRead(int)" allow-thread="yes"/>
<modify-function signature="waitForBytesWritten(int)" allow-thread="yes"/>
- <!-- ### peek(qint64) do the job -->
<modify-function signature="peek(char*,qint64)" remove="all"/>
- <!-- ### read(qint64) do the job -->
+ <add-function signature="peek(PyBuffer@buffer@,qint64@maxlen@)" return-type="qint64">
+ <modify-argument index="1" pyi-type="bytearray"/>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qiodevice-bufferedread"/>
+ </add-function>
<modify-function signature="read(char*,qint64)" remove="all"/>
- <!-- ### readLine(qint64) do the job -->
+ <add-function signature="read(PyBuffer@buffer@,qint64@maxlen@)" return-type="qint64">
+ <modify-argument index="1" pyi-type="bytearray"/>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qiodevice-bufferedread"/>
+ </add-function>
<modify-function signature="readLine(char*,qint64)" remove="all"/>
+ <add-function signature="readLine(PyBuffer@buffer@,qint64@maxlen@)" return-type="qint64">
+ <modify-argument index="1" pyi-type="bytearray"/>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qiodevice-bufferedread"/>
+ </add-function>
<!-- ### write(str) do the job -->
<modify-function signature="write(const char*,qint64)" remove="all"/>
<modify-function signature="write(const char*)" remove="all"/>
@@ -2275,7 +2408,7 @@
<inject-code class="native" position="end" file="../glue/qtcore.cpp" snippet="return-readData"/>
</modify-function>
</object-type>
- <object-type name="QIODeviceBase" since="6.0">
+ <object-type name="QIODeviceBase">
<enum-type name="OpenModeFlag" flags="OpenMode"/>
</object-type>
<object-type name="QCryptographicHash">
@@ -2290,8 +2423,8 @@
<value-type name="QOperatingSystemVersionBase" since="6.3">
<enum-type name="OSType"/>
</value-type>
- <value-type name="QOperatingSystemVersion" since="5.9">
- <enum-type name="OSType"/>
+ <value-type name="QOperatingSystemVersionUnexported" since="6.3" generate="false"/>
+ <value-type name="QOperatingSystemVersion">
<modify-function signature="QOperatingSystemVersion(const QOperatingSystemVersionBase&amp;)" remove="all"/>
</value-type>
<object-type name="QLibrary">
@@ -2305,6 +2438,7 @@
</object-type>
<namespace-type name="QtCoreHelper" visible="no">
<object-type name="QMutexLocker" copyable="no">
+ <configuration condition="QT_CONFIG(thread)"/>
<!-- PYSIDE-1271: Creating locking capable objects inside sections that
contain allow-thread, require the classes to also allow having threads.
The lack of the option here, was generating a deadlock when running a
@@ -2332,46 +2466,53 @@
<reference-count action="set"/>
</modify-argument>
</modify-function>
- <add-function signature="__enter__()" return-type="QMutexLocker">
+ <add-function signature="__enter__()" return-type="QtCoreHelper::QMutexLocker">
<inject-code file="../glue/qtcore.cpp" snippet="default-enter"/>
</add-function>
<add-function signature="__exit__(PyObject*,PyObject*,PyObject*)">
<inject-code file="../glue/qtcore.cpp" snippet="unlock"/>
</add-function>
</object-type>
+ <object-type name="QIOPipe"/>
<value-type name="QGenericArgumentHolder"/>
<value-type name="QGenericReturnArgumentHolder"/>
</namespace-type>
<!-- Qt5 addition -->
<object-type name="QBasicMutex">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="lock()" allow-thread="yes"/>
<modify-function signature="tryLock()" allow-thread="yes"/>
</object-type>
<object-type name="QMutex">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="tryLock(int)" allow-thread="yes"/>
</object-type>
- <object-type name="QRecursiveMutex" since="5.14">
+ <object-type name="QRecursiveMutex">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="lock()" allow-thread="yes"/>
<modify-function signature="tryLock(int)" allow-thread="yes"/>
</object-type>
- <object-type name="QRandomGenerator" since="5.10">
+ <object-type name="QRandomGenerator">
<modify-function signature="global()" rename="global_"/>
<modify-function signature="operator()()" remove="all"/>
<modify-function signature="generate(quint32*,quint32*)" remove="all"/>
</object-type>
- <object-type name="QRandomGenerator64" since="5.10">
+ <object-type name="QRandomGenerator64">
<modify-function signature="global()" rename="global_"/>
<modify-function signature="operator()()" remove="all"/>
</object-type>
<object-type name="QSemaphore">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="acquire(int)" allow-thread="yes"/>
<modify-function signature="tryAcquire(int,int)" allow-thread="yes"/>
</object-type>
- <object-type name="QSemaphoreReleaser" since="5.10"/>
+ <object-type name="QSemaphoreReleaser">
+ <configuration condition="QT_CONFIG(thread)"/>
+ </object-type>
- <value-type name="QSocketDescriptor" since="5.15">
+ <value-type name="QSocketDescriptor">
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp" snippet="qsocketdescriptor"/>
</value-type>
<object-type name="QSocketNotifier">
@@ -2410,8 +2551,14 @@
</modify-argument>
<inject-code file="../glue/qtcore.cpp" snippet="qtranslator-load"/>
</modify-function>
+ <modify-function signature="translate(const char*,const char*, const char*,int)const">
+ <modify-argument index="1" pyi-type="str"/>
+ <modify-argument index="2" pyi-type="str"/>
+ <modify-argument index="3" pyi-type="Optional[str]"/>
+ </modify-function>
</object-type>
<object-type name="QWaitCondition">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="wait(QMutex*,QDeadlineTimer)" allow-thread="yes"/>
<modify-function signature="wait(QMutex*,unsigned long)" allow-thread="yes"/>
<modify-function signature="wait(QReadWriteLock*,QDeadlineTimer)" allow-thread="yes"/>
@@ -2424,19 +2571,28 @@
</object-type>
<object-type name="QBuffer">
<!-- ### setData(QByteArray) do the job -->
- <modify-function signature="setData(const char*,int)" remove="all"/>
+ <modify-function signature="setData(const char*,qsizetype)" remove="all"/>
<!-- Disambiguate from Qt3DRender/qbuffer.h -->
<include file-name="QtCore/qbuffer.h" location="global"/>
</object-type>
<object-type name="QTimer">
+ <extra-includes>
+ <include file-name="pysidestaticstrings.h" location="global"/>
+ </extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qtimer-singleshot-functorclass"/>
<modify-function signature="singleShot(int,const QObject*,const char*)">
- <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-1"/>
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-direct-mapping"/>
</modify-function>
- <add-function signature="singleShot(int,PyCallable*)" static="yes">
- <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-2"/>
+ <add-function signature="singleShot(int@msec@,PyCallable*@functor@)" static="yes">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-functor"/>
+ </add-function>
+ <add-function signature="singleShot(int@msec@,const QObject*@context@,PyCallable*@functor@)" static="yes">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qtimer-singleshot-functor-context"/>
</add-function>
</object-type>
<object-type name="QProcess">
+ <configuration condition="QT_CONFIG(process)"/>
<enum-type name="ExitStatus"/>
<enum-type name="InputChannelMode"/>
<enum-type name="ProcessChannel"/>
@@ -2444,6 +2600,11 @@
<enum-type name="ProcessError"/>
<enum-type name="ProcessState"/>
+ <?if !windows?>
+ <enum-type name="UnixProcessFlag" flags="UnixProcessFlags" since="6.6"/>
+ <value-type name="UnixProcessParameters" since="6.6"/>
+ <?endif?>
+
<modify-function signature="waitForStarted(int)" allow-thread="yes"/>
<modify-function signature="waitForBytesWritten(int)" allow-thread="yes"/>
<modify-function signature="waitForFinished(int)" allow-thread="yes"/>
@@ -2454,7 +2615,7 @@
<modify-argument index="4">
<remove-argument />
</modify-argument>
- <modify-argument index="return">
+ <modify-argument index="return" pyi-type="Tuple[bool, int]">
<replace-type modified-type="(retval, pid)"/>
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qprocess-startdetached"/>
@@ -2462,14 +2623,14 @@
</object-type>
<object-type name="QSignalMapper"/>
- <object-type name="QCollatorSortKey" since="5.2"/>
- <object-type name="QCollator" since="5.2"/>
+ <object-type name="QCollatorSortKey"/>
+ <object-type name="QCollator"/>
- <object-type name="QCommandLineOption" since="5.2">
- <enum-type name="Flag" flags="Flags" since="5.8"/>
+ <object-type name="QCommandLineOption">
+ <enum-type name="Flag" flags="Flags"/>
</object-type>
- <object-type name="QCommandLineParser" since="5.2">
- <enum-type name="OptionsAfterPositionalArgumentsMode" since="5.6"/>
+ <object-type name="QCommandLineParser">
+ <enum-type name="OptionsAfterPositionalArgumentsMode"/>
<enum-type name="SingleDashWordOptionMode"/>
</object-type>
@@ -2482,20 +2643,17 @@
<include file-name="pysidecleanup.h" location="global"/>
<include file-name="pysideqapp.h" location="global"/>
</extra-includes>
- <!-- constructor documentation -->
- <inject-documentation format="target" mode="append">
-.. class:: QCoreApplication(args)
-
- Constructs a Qt kernel application. Kernel applications are applications
- without a graphical user interface. These type of applications are used
- at the console or as server processes.
-
- The *args* argument is processed by the application, and made available
- in a more convenient form by the :meth:`~QCoreApplication.arguments()`
- method.
- </inject-documentation>
- <add-function signature="QCoreApplication(QStringList)">
+ <add-function signature="QCoreApplication(QStringList@args@)">
<inject-code file="../glue/qtcore.cpp" snippet="qcoreapplication-1"/>
+ <inject-documentation format="target" mode="append">
+ Constructs a Qt kernel application. Kernel applications are applications
+ without a graphical user interface. These type of applications are used
+ at the console or as server processes.
+
+ The *args* argument is processed by the application, and made available
+ in a more convenient form by the :meth:`~PySide6.QtCore.QCoreApplication.arguments()`
+ method.
+ </inject-documentation>
</add-function>
<add-function signature="QCoreApplication()">
<inject-code file="../glue/qtcore.cpp" snippet="qcoreapplication-2"/>
@@ -2531,6 +2689,43 @@
<define-ownership owner="c++"/>
</modify-argument>
</modify-function>
+ <modify-function signature="translate(const char*,const char*,const char *,int)">
+ <modify-argument index="1" pyi-type="str"/>
+ <modify-argument index="2" pyi-type="str"/>
+ <modify-argument index="3" pyi-type="Optional[str]"/>
+ </modify-function>
+ <?if !no_QPermission?>
+ <declare-function signature="checkPermission(const QBluetoothPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QCalendarPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QCameraPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QContactsPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QLocationPermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <declare-function signature="checkPermission(const QMicrophonePermission &amp; @permission@)" return-type="Qt::PermissionStatus" since="6.5" />
+ <add-function signature="requestPermission(const QBluetoothPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QCalendarPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QCameraPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QContactsPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QLocationPermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <add-function signature="requestPermission(const QMicrophonePermission &amp; @permission@, const QObject* @context@, PyCallable* @functor@)" since="6.5">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qcoreapplication-requestpermission"/>
+ </add-function>
+ <?endif?>
</object-type>
<object-type name="QSettings">
<enum-type name="Format"/>
@@ -2539,10 +2734,12 @@
<extra-includes>
<include file-name="QStringList" location="global"/>
</extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="settings-value-helpers"/>
<!-- PYSIDE-1010:
We remove the original implementation of value() to include the optional parameter -->
<modify-function signature="value(QAnyStringView,const QVariant&amp;)const" remove="all"/>
- <add-function signature="value(const QString&amp;, const QVariant&amp; @defaultValue@ = 0, PyObject* @type@ = 0)" return-type="PyObject*">
+ <add-function signature="value(const QString&amp;, const QVariant&amp; @defaultValue@ = {}, PyObject* @type@ = nullptr)" return-type="PyObject*">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qsettings-value"/>
<inject-documentation mode="append" format="target">
Custom overload that adds an optional named parameter to the function ``value()``
@@ -2569,27 +2766,30 @@
</object-type>
<object-type name="QEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::None"
qt-register-metatype="base">
- <enum-type name="Type"/>
+ <enum-type name="Type" python-type="IntEnum"/>
<add-function signature="__repr__" return-type="PyObject">
<inject-code class="target" position="beginning"
file="../glue/qtcore.cpp" snippet="repr-qevent"/>
</add-function>
</object-type>
- <object-type name="QChildEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ChildAdded || %1-&gt;type() == QEvent::ChildPolished || %1-&gt;type() == QEvent::ChildRemoved">
+ <object-type name="QChildEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::ChildAdded || %B-&gt;type() == QEvent::ChildPolished || %B-&gt;type() == QEvent::ChildRemoved">
<modify-function signature="child()const">
<modify-argument index="return">
<define-ownership class="target" owner="default"/>
</modify-argument>
</modify-function>
</object-type>
- <object-type name="QTimerEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Timer"/>
- <object-type name="QDynamicPropertyChangeEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DynamicPropertyChange"/>
+ <object-type name="QTimerEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::Timer"/>
+ <object-type name="QDynamicPropertyChangeEvent"
+ polymorphic-id-expression="%B-&gt;type() == QEvent::DynamicPropertyChange"/>
<object-type name="QDataStream" stream="yes">
<enum-type name="FloatingPointPrecision" since="4.6"/>
<enum-type name="Status"/>
- <enum-type name="Version"/>
+ <enum-type name="Version" python-type="IntEnum"/>
<enum-type name="ByteOrder"/>
<extra-includes>
<include file-name="QtCore/QtCore" location="global"/>
@@ -2651,13 +2851,19 @@
<add-function signature="readQVariant()" return-type="QVariant">
<inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="stream-read-method"/>
</add-function>
- <modify-function signature="readRawData(char*,int)">
+ <modify-function signature="readRawData(char*,qint64)">
+ <modify-argument index="return" pyi-type="bytes"/>
<modify-argument index="1">
<remove-argument />
</modify-argument>
<inject-code class="target" file="../glue/qtcore.cpp" snippet="qdatastream-readrawdata"/>
</modify-function>
- <modify-function signature="writeRawData(const char*,int)">
+ <add-function signature="writeRawData(PyBuffer)">
+ <inject-code class="target" position="beginning"
+ file="../glue/qtcore.cpp" snippet="qdatastream-writerawdata-pybuffer"/>
+ </add-function>
+ <modify-function signature="writeRawData(const char*,qint64)">
+ <modify-argument index="1" pyi-type="str"/>
<modify-argument index="2">
<remove-argument />
</modify-argument>
@@ -2738,7 +2944,7 @@
<add-function signature="writeString(QString)">
<inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="stream-write-method"/>
</add-function>
- <modify-function signature="readBytes(char*&amp;,uint&amp;)">
+ <modify-function signature="readBytes(char*&amp;,qint64&amp;)">
<modify-argument index="return">
<replace-type modified-type="PyTuple"/>
</modify-argument>
@@ -2747,8 +2953,9 @@
</modify-argument>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qdatastream-read-bytes"/>
</modify-function>
+ <modify-function signature="readBytes(char*&amp;,uint&amp;)" remove="all"/>
- <modify-function signature="writeBytes(const char*,uint)">
+ <modify-function signature="writeBytes(const char*,qint64)">
<modify-argument index="1">
<replace-type modified-type="PyBuffer"/>
<conversion-rule class="native">
@@ -2778,7 +2985,7 @@
<!-- Removed because it expect QString to be mutable -->
<modify-function signature="QTextStream(QString*,QFlags&lt;QIODeviceBase::OpenModeFlag&gt;)" remove="all"/>
<!-- Qt5.5: Removed because it expect QString to be mutable -->
- <modify-function signature="readLineInto(QString*,qint64)" since="5.5" remove="all"/>
+ <modify-function signature="readLineInto(QString*,qint64)"/>
<!-- Removed because we use the non-const version -->
<modify-function signature="QTextStream(const QByteArray&amp;,QFlags&lt;QIODeviceBase::OpenModeFlag&gt;)" remove="all"/>
@@ -2821,16 +3028,18 @@
<modify-function signature="readLine(qint64)" allow-thread="yes"/>
<modify-function signature="readAll()" allow-thread="yes"/>
</object-type>
- <object-type name="QStandardPaths" since="5.0">
+ <object-type name="QStandardPaths">
<enum-type name="StandardLocation"/>
<enum-type name="LocateOption" flags="LocateOptions"/>
</object-type>
<object-type name="QSystemSemaphore">
+ <configuration condition="#ifndef QT_NO_SYSTEMSEMAPHORE"/>
<enum-type name="AccessMode"/>
<enum-type name="SystemSemaphoreError"/>
</object-type>
<object-type name="QThreadPool">
+ <configuration condition="QT_CONFIG(thread)"/>
<modify-function signature="clear()" allow-thread="yes"/>
<modify-function signature="activeThreadCount()const" allow-thread="yes"/>
<modify-function signature="releaseThread()" allow-thread="yes"/>
@@ -2898,6 +3107,7 @@
</object-type>
<value-type name="QModelIndex">
<modify-function signature="internalPointer()const">
+ <modify-argument index="return" pyi-type="Any"/>
<inject-code class="target" position="beginning">
<insert-template name="return_internal_pointer" />
</inject-code>
@@ -2910,19 +3120,23 @@
</value-type>
<object-type name="QFutureInterfaceBase">
+ <configuration condition="QT_CONFIG(future)"/>
<enum-type name="State"/>
<enum-type name="CancelMode" since="6.3"/>
</object-type>
<value-type name="QFuture" generate="no">
<include file-name="QtCore/qfuture.h" location="global"/>
+ <configuration condition="QT_CONFIG(future)"/>
<modify-function signature="waitForFinished()" allow-thread="yes"/>
</value-type>
<object-type name="QFutureWatcherBase" generate="no">
+ <configuration condition="QT_CONFIG(future)"/>
<modify-function signature="futureInterface()" remove="all"/>
<modify-function signature="futureInterface() const" remove="all"/>
</object-type>
<object-type name="QFutureWatcher" generate="no">
<include file-name="QtCore/qfuturewatcher.h" location="global"/>
+ <configuration condition="QT_CONFIG(future)"/>
</object-type>
<!--// FIXME PYSIDE 7: Remove in favor of QtCoreHelper::QGenericArgumentHolder for
@@ -2936,18 +3150,92 @@
<include file-name="qobjectdefs.h" location="global"/>
</value-type>
- <object-type name="QMessageLogContext" since="5.14"/>
-
- <object-type name="QMessageLogContext" since="5.9" until="5.13.2">
- <modify-function signature="copy(const QMessageLogContext &amp;)" remove="all"/>
- </object-type>
+ <object-type name="QMessageLogContext"/>
<value-type name="QMetaMethod">
+ <extra-includes>
+ <include file-name="pysidesignal.h" location="global"/>
+ <include file-name="glue/core_snippets_p.h" location="local"/>
+ </extra-includes>
+ <inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke-helpers"/>
<enum-type name="Access"/>
<enum-type name="MethodType"/>
+ <add-function signature="fromSignal(PySideSignalInstance@signal@)"
+ return-type="QMetaMethod" static="true">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-from-signal"/>
+ <inject-documentation format="target" mode="append">
+ Returns the meta-method that corresponds to the given signal, or an invalid QMetaMethod
+ if signal is not a signal of the class.
+ </inject-documentation>
+ </add-function>
+ <add-function signature="invoke(QObject*@object@,Qt::ConnectionType@type@,
+ QtCoreHelper::QGenericReturnArgumentHolder@ret@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke-conn-type-return-arg"/>
+ </add-function>
+ <add-function signature="invoke(QObject*@object@,
+ QtCoreHelper::QGenericReturnArgumentHolder@ret@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke-return-arg"/>
+ </add-function>
+ <add-function signature="invoke(QObject*@object@,Qt::ConnectionType@type@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke-conn-type"/>
+ </add-function>
+ <add-function signature="invoke(QObject*@object@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
+ return-type="PyObject*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
+ snippet="qmetamethod-invoke"/>
+ </add-function>
<!-- This isn't part of Qt public API -->
<modify-function signature="attributes()const" remove="all"/>
<modify-function signature="getParameterTypes(int*)const" remove="all"/>
+ <modify-field name="mobj" remove="yes"/>
</value-type>
<object-type name="QMetaObject">
<enum-type name="Call"/>
@@ -2955,6 +3243,7 @@
<extra-includes>
<include file-name="dynamicqmetaobject.h" location="global"/>
<include file-name="pysidemetatype.h" location="global"/>
+ <include file-name="glue/core_snippets_p.h" location="local"/>
<include file-name="pysideutils.h" location="global"/> <!-- QString conversion -->
</extra-includes>
<inject-code class="native" position="beginning" file="../glue/qtcore.cpp"
@@ -2967,22 +3256,64 @@
<declare-function signature="operator bool() const" return-type="bool"/>
</value-type>
<modify-function signature="^invokeMethod\(" allow-thread="yes"/>
- <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@,QtCoreHelper::QGenericArgumentHolder@val0@={},QtCoreHelper::QGenericArgumentHolder@val1@={},QtCoreHelper::QGenericArgumentHolder@val2@={})"
+ <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
static="yes" return-type="bool">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
snippet="qmetaobject-invokemethod-conn-type-arg"/>
</add-function>
- <add-function signature="invokeMethod(QObject*@object@,const char *@member@,QtCoreHelper::QGenericArgumentHolder@val0@={},QtCoreHelper::QGenericArgumentHolder@val1@={},QtCoreHelper::QGenericArgumentHolder@val2@={})"
+ <add-function signature="invokeMethod(QObject*@object@,const char *@member@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
static="yes" return-type="bool">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
snippet="qmetaobject-invokemethod-arg"/>
</add-function>
- <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@,QtCoreHelper::QGenericReturnArgumentHolder@ret@,QtCoreHelper::QGenericArgumentHolder@val0@={},QtCoreHelper::QGenericArgumentHolder@val1@={},QtCoreHelper::QGenericArgumentHolder@val2@={})"
+ <add-function signature="invokeMethod(QObject*@object@,const char *@member@,Qt::ConnectionType@type@,
+ QtCoreHelper::QGenericReturnArgumentHolder@ret@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
static="yes" return-type="PyObject*">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
snippet="qmetaobject-invokemethod-conn-type-return-arg"/>
</add-function>
- <add-function signature="invokeMethod(QObject*@object@,const char *@member@,QtCoreHelper::QGenericReturnArgumentHolder@ret@,QtCoreHelper::QGenericArgumentHolder@val0@={},QtCoreHelper::QGenericArgumentHolder@val1@={},QtCoreHelper::QGenericArgumentHolder@val2@={})"
+ <add-function signature="invokeMethod(QObject*@object@,const char *@member@,
+ QtCoreHelper::QGenericReturnArgumentHolder@ret@,
+ QtCoreHelper::QGenericArgumentHolder@val0@={},
+ QtCoreHelper::QGenericArgumentHolder@val1@={},
+ QtCoreHelper::QGenericArgumentHolder@val2@={},
+ QtCoreHelper::QGenericArgumentHolder@val3@={},
+ QtCoreHelper::QGenericArgumentHolder@val4@={},
+ QtCoreHelper::QGenericArgumentHolder@val5@={},
+ QtCoreHelper::QGenericArgumentHolder@val6@={},
+ QtCoreHelper::QGenericArgumentHolder@val7@={},
+ QtCoreHelper::QGenericArgumentHolder@val8@={},
+ QtCoreHelper::QGenericArgumentHolder@val9@={})"
static="yes" return-type="PyObject*">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp"
snippet="qmetaobject-invokemethod-return-arg"/>
@@ -2990,6 +3321,27 @@
<add-function signature="__repr__" return-type="PyObject*">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qmetaobject-repr"/>
</add-function>
+ <modify-function signature="indexOfClassInfo(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfConstructor(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfEnumerator(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfMethod(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfProperty(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfSignal(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
+ <modify-function signature="indexOfSlot(const char *)">
+ <modify-argument index="1" pyi-type="str"/>
+ </modify-function>
</object-type>
<value-type name="QMetaProperty" >
<!-- This isn't part of Qt public API -->
@@ -3111,13 +3463,14 @@
</value-type>
<value-type name="QMargins" since="4.6"/>
- <value-type name="QMarginsF" since="5.3"/>
+ <value-type name="QMarginsF"/>
<object-type name="QParallelAnimationGroup" since="4.6"/>
<object-type name="QPauseAnimation" since="4.6"/>
<value-type name="QProcessEnvironment" since="4.6">
+ <configuration condition="QT_CONFIG(processenvironment)"/>
<enum-type name="Initialization" since="6.3"/>
</value-type>
@@ -3127,7 +3480,7 @@
<object-type name="QVariantAnimation" since="4.6"/>
- <value-type name="QVersionNumber" since="5.6">
+ <value-type name="QVersionNumber">
<modify-function signature="fromString(QAnyStringView,qsizetype*)">
<modify-argument index="2">
<remove-argument/>
@@ -3139,10 +3492,12 @@
<add-function signature="SIGNAL(const char*)" return-type="str">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qt-signal"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="SLOT(const char*)" return-type="str">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qt-slot"/>
+ <modify-argument index="1" pyi-type="str"/>
</add-function>
<add-function signature="QT_TR_NOOP(PyObject)" return-type="PyObject*">
@@ -3180,12 +3535,18 @@
</add-function>
<object-type name="QFactoryInterface"/>
- <object-type name="QRunnable"/>
+ <object-type name="QRunnable">
+ <configuration condition="QT_CONFIG(thread)"/>
+ <add-function signature="create(PyObject* @functionToRun@)" static="yes" return-type="QRunnable*">
+ <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qrunnable_create"/>
+ </add-function>
+ </object-type>
<object-type name="QPluginLoader"/>
<object-type name="QStringListModel"/>
<object-type name="QSharedMemory">
+ <configuration condition="#ifndef QT_NO_SHAREDMEMORY"/>
<enum-type name="AccessMode"/>
<enum-type name="SharedMemoryError"/>
<modify-function signature="data()">
@@ -3223,25 +3584,25 @@
<include file-name="qloggingcategory.h" location="global" />
</extra-includes>
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qloggingcategory_to_cpp">
- qCDebug(*category, "%s", %2);
+ qCDebug((*category), "%s", %2);
</inject-code>
</add-function>
<add-function signature="qCCritical(PyObject *, const char *)">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qloggingcategory_to_cpp">
- qCCritical(*category, "%s", %2);
+ qCCritical((*category), "%s", %2);
</inject-code>
</add-function>
<add-function signature="qCInfo(PyObject *, const char *)">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qloggingcategory_to_cpp">
- qCInfo(*category, "%s", %2);
+ qCInfo((*category), "%s", %2);
</inject-code>
</add-function>
<add-function signature="qCWarning(PyObject *, const char *)">
<inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qloggingcategory_to_cpp">
- qCWarning(*category, "%s", %2);
+ qCWarning((*category), "%s", %2);
</inject-code>
</add-function>
@@ -3250,19 +3611,20 @@
<suppress-warning text="^Anonymous enum.*does not have a type entry.*$"/>
<suppress-warning text="Visibility of function '*' modified in class '*'"/>
- <suppress-warning text="hiding of function '*' in class '*'"/>
<suppress-warning text="Shadowing: *"/>
- <suppress-warning text="namespace '*' does not have a type entry"/>
+ <suppress-warning text="^namespace '.*' does not have a type entry.*$"/>
<!-- QCborStreamReader: Suppress warnings about 32/64bit signatures not found depending on qsizetype -->
<suppress-warning text="^signature 'readStringChunk\(char.*in 'QCborStreamReader' not found.*$"/>
<!-- TODO: this need be removed -->
- <suppress-warning text="^skipping function '.*', unmatched return type '.*$"/>
- <suppress-warning text="^skipping function '.*', unmatched type '.*$"/>
- <suppress-warning text="skipping field 'QStringConverter::iface' with unmatched type 'QStringConverter::Interface'"/>
- <suppress-warning text="skipping field 'Qt::Uninitialized' with unmatched type 'Qt::Initialization'"/>
- <suppress-warning text="skipping field 'State::clearFn' with unmatched type 'void'"/>
+ <suppress-warning text="^skipping.*function '.*', unmatched return type '.*$"/>
+ <suppress-warning text="^skipping.*function '.*', unmatched type '.*$"/>
+ <suppress-warning text="skipping protected field 'QStringConverter::iface' with unmatched type 'QStringConverter::Interface'"/>
+ <suppress-warning text="^skipping public field 'Qt::.*' with unmatched type 'Qt::.*ordering'$"/>
+ <suppress-warning text="skipping public field 'Qt::Uninitialized' with unmatched type 'Qt::Initialization'"/>
+ <suppress-warning text="skipping public field 'State::clearFn' with unmatched type 'void'"/>
<suppress-warning text="template baseclass 'QListSpecialMethods&lt;T&gt;' of 'QList' is not known"/>
<suppress-warning text="^.*inherits from a non polymorphic type.*QIODeviceBase.*type discovery based on RTTI is impossible.*$"/>
+ <suppress-warning text="Base class 'QOperatingSystemVersionUnexported' of class 'QOperatingSystemVersion' not found in the type system for setting up inheritance."/>
</typesystem>