aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/PySide2/glue
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside2/PySide2/glue')
-rw-r--r--sources/pyside2/PySide2/glue/qtcharts.cpp42
-rw-r--r--sources/pyside2/PySide2/glue/qtcore.cpp1850
-rw-r--r--sources/pyside2/PySide2/glue/qtdatavisualization.cpp42
-rw-r--r--sources/pyside2/PySide2/glue/qtgui.cpp549
-rw-r--r--sources/pyside2/PySide2/glue/qtmultimedia.cpp46
-rw-r--r--sources/pyside2/PySide2/glue/qtnetwork.cpp80
-rw-r--r--sources/pyside2/PySide2/glue/qtopengl.cpp74
-rw-r--r--sources/pyside2/PySide2/glue/qtprintsupport.cpp43
-rw-r--r--sources/pyside2/PySide2/glue/qtqml.cpp52
-rw-r--r--sources/pyside2/PySide2/glue/qtquick.cpp42
-rw-r--r--sources/pyside2/PySide2/glue/qtscript.cpp74
-rw-r--r--sources/pyside2/PySide2/glue/qtuitools.cpp110
-rw-r--r--sources/pyside2/PySide2/glue/qtwebkitwidgets.cpp92
-rw-r--r--sources/pyside2/PySide2/glue/qtwidgets.cpp661
-rw-r--r--sources/pyside2/PySide2/glue/qtxml.cpp63
-rw-r--r--sources/pyside2/PySide2/glue/qtxmlpatterns.cpp43
16 files changed, 0 insertions, 3863 deletions
diff --git a/sources/pyside2/PySide2/glue/qtcharts.cpp b/sources/pyside2/PySide2/glue/qtcharts.cpp
deleted file mode 100644
index 1828fecc0..000000000
--- a/sources/pyside2/PySide2/glue/qtcharts.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qchart-releaseownership
-Shiboken::Object::releaseOwnership(%PYARG_1);
-// @snippet qchart-releaseownership
diff --git a/sources/pyside2/PySide2/glue/qtcore.cpp b/sources/pyside2/PySide2/glue/qtcore.cpp
deleted file mode 100644
index 930ad9349..000000000
--- a/sources/pyside2/PySide2/glue/qtcore.cpp
+++ /dev/null
@@ -1,1850 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*********************************************************************
- * INJECT CODE
- ********************************************************************/
-
-// @snippet include-pyside
-#include <pyside.h>
-// @snippet include-pyside
-
-// @snippet pystring-check
-bool py2kStrCheck(PyObject *obj)
-{
-#ifdef IS_PY3K
- return false;
-#else
- return PyString_Check(obj);
-#endif
-}
-// @snippet pystring-check
-
-// @snippet qvariant-conversion
-static const char *QVariant_resolveMetaType(PyTypeObject *type, int *typeId)
-{
- if (PyObject_TypeCheck(type, SbkObjectType_TypeF())) {
- auto sbkType = reinterpret_cast<SbkObjectType *>(type);
- const char *typeName = Shiboken::ObjectType::getOriginalName(sbkType);
- if (!typeName)
- return nullptr;
- const bool valueType = '*' != typeName[qstrlen(typeName) - 1];
- // Do not convert user type of value
- if (valueType && Shiboken::ObjectType::isUserType(type))
- return nullptr;
- int obTypeId = QMetaType::type(typeName);
- if (obTypeId) {
- *typeId = obTypeId;
- return typeName;
- }
- // Do not resolve types to value type
- if (valueType)
- return nullptr;
- // Find in base types. First check tp_bases, and only after check tp_base, because
- // tp_base does not always point to the first base class, but rather to the first
- // that has added any python fields or slots to its object layout.
- // See https://mail.python.org/pipermail/python-list/2009-January/520733.html
- if (type->tp_bases) {
- for (int i = 0, size = PyTuple_GET_SIZE(type->tp_bases); i < size; ++i) {
- const char *derivedName = QVariant_resolveMetaType(reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(
- type->tp_bases, i)), typeId);
- if (derivedName)
- return derivedName;
- }
- }
- else if (type->tp_base) {
- return QVariant_resolveMetaType(type->tp_base, typeId);
- }
- }
- *typeId = 0;
- return nullptr;
-}
-static QVariant QVariant_convertToValueList(PyObject *list)
-{
- if (PySequence_Size(list) < 0) {
- // clear the error if < 0 which means no length at all
- PyErr_Clear();
- return QVariant();
- }
-
- Shiboken::AutoDecRef element(PySequence_GetItem(list, 0));
- int typeId;
- const char *typeName = QVariant_resolveMetaType(element.cast<PyTypeObject *>(), &typeId);
- if (typeName) {
- QByteArray listTypeName("QList<");
- listTypeName += typeName;
- listTypeName += '>';
- typeId = QMetaType::type(listTypeName);
- if (typeId > 0) {
- Shiboken::Conversions::SpecificConverter converter(listTypeName);
- if (converter) {
- QVariant var(typeId, nullptr);
- converter.toCpp(list, &var);
- return var;
- }
- qWarning() << "Type converter for :" << listTypeName << "not registered.";
- }
- }
- return QVariant();
-}
-static bool QVariant_isStringList(PyObject *list)
-{
- if (!PySequence_Check(list)) {
- // If it is not a list or a derived list class
- // we assume that will not be a String list neither.
- return false;
- }
-
- if (PySequence_Size(list) < 0) {
- // clear the error if < 0 which means no length at all
- PyErr_Clear();
- return false;
- }
-
- Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList"));
- const Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object());
- for (Py_ssize_t i = 0; i < size; ++i) {
- PyObject *item = PySequence_Fast_GET_ITEM(fast.object(), i);
- if (!%CHECKTYPE[QString](item))
- return false;
- }
- return true;
-}
-static QVariant QVariant_convertToVariantMap(PyObject *map)
-{
- Py_ssize_t pos = 0;
- Shiboken::AutoDecRef keys(PyDict_Keys(map));
- if (!QVariant_isStringList(keys))
- return QVariant();
- PyObject *key;
- PyObject *value;
- QMap<QString,QVariant> ret;
- while (PyDict_Next(map, &pos, &key, &value)) {
- QString cppKey = %CONVERTTOCPP[QString](key);
- QVariant cppValue = %CONVERTTOCPP[QVariant](value);
- ret.insert(cppKey, cppValue);
- }
- return QVariant(ret);
-}
-static QVariant QVariant_convertToVariantList(PyObject *list)
-{
- if (QVariant_isStringList(list)) {
- QList<QString > lst = %CONVERTTOCPP[QList<QString>](list);
- return QVariant(QStringList(lst));
- }
- QVariant valueList = QVariant_convertToValueList(list);
- if (valueList.isValid())
- return valueList;
-
- if (PySequence_Size(list) < 0) {
- // clear the error if < 0 which means no length at all
- PyErr_Clear();
- return QVariant();
- }
-
- QList<QVariant> lst;
- Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList"));
- const Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object());
- for (Py_ssize_t i = 0; i < size; ++i) {
- PyObject *pyItem = PySequence_Fast_GET_ITEM(fast.object(), i);
- QVariant item = %CONVERTTOCPP[QVariant](pyItem);
- lst.append(item);
- }
- return QVariant(lst);
-}
-// @snippet qvariant-conversion
-
-// @snippet qvariantmap-check
-static bool QVariantType_isStringList(PyObject *list)
-{
- Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList"));
- const Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object());
- for (Py_ssize_t i=0; i < size; i++) {
- PyObject *item = PySequence_Fast_GET_ITEM(fast.object(), i);
- if (!%CHECKTYPE[QString](item))
- return false;
- }
- return true;
-}
-static bool QVariantType_checkAllStringKeys(PyObject *dict)
-{
- Shiboken::AutoDecRef keys(PyDict_Keys(dict));
- return QVariantType_isStringList(keys);
-}
-// @snippet qvariantmap-check
-
-// @snippet qt-qabs
-double _abs = qAbs(%1);
-%PYARG_0 = %CONVERTTOPYTHON[double](_abs);
-// @snippet qt-qabs
-
-// @snippet qt-postroutine
-namespace PySide {
-static QStack<PyObject *> globalPostRoutineFunctions;
-void globalPostRoutineCallback()
-{
- Shiboken::GilState state;
- for (auto *callback : globalPostRoutineFunctions) {
- Shiboken::AutoDecRef result(PyObject_CallObject(callback, nullptr));
- Py_DECREF(callback);
- }
- globalPostRoutineFunctions.clear();
-}
-void addPostRoutine(PyObject *callback)
-{
- if (PyCallable_Check(callback)) {
- globalPostRoutineFunctions << callback;
- Py_INCREF(callback);
- } else {
- PyErr_SetString(PyExc_TypeError, "qAddPostRoutine: The argument must be a callable object.");
- }
-}
-} // namespace
-// @snippet qt-postroutine
-
-// @snippet qt-addpostroutine
-PySide::addPostRoutine(%1);
-// @snippet qt-addpostroutine
-
-// @snippet qt-qaddpostroutine
-qAddPostRoutine(PySide::globalPostRoutineCallback);
-// @snippet qt-qaddpostroutine
-
-// @snippet qt-version
-QList<QByteArray> version = QByteArray(qVersion()).split('.');
-PyObject *pyQtVersion = PyTuple_New(3);
-for (int i = 0; i < 3; ++i)
- PyTuple_SET_ITEM(pyQtVersion, i, PyInt_FromLong(version[i].toInt()));
-PyModule_AddObject(module, "__version_info__", pyQtVersion);
-PyModule_AddStringConstant(module, "__version__", qVersion());
-// @snippet qt-version
-
-// @snippet qobject-connect
-static bool isDecorator(PyObject *method, PyObject *self)
-{
- Shiboken::AutoDecRef methodName(PyObject_GetAttrString(method, "__name__"));
- if (!PyObject_HasAttr(self, methodName))
- return true;
- Shiboken::AutoDecRef otherMethod(PyObject_GetAttr(self, methodName));
- return PyMethod_GET_FUNCTION(otherMethod.object()) != PyMethod_GET_FUNCTION(method);
-}
-
-static bool getReceiver(QObject *source, const char *signal, PyObject *callback, QObject **receiver, PyObject **self, QByteArray *callbackSig)
-{
- bool forceGlobalReceiver = false;
- if (PyMethod_Check(callback)) {
- *self = PyMethod_GET_SELF(callback);
- if (%CHECKTYPE[QObject *](*self))
- *receiver = %CONVERTTOCPP[QObject *](*self);
- forceGlobalReceiver = isDecorator(callback, *self);
- } else if (PyCFunction_Check(callback)) {
- *self = PyCFunction_GET_SELF(callback);
- if (*self && %CHECKTYPE[QObject *](*self))
- *receiver = %CONVERTTOCPP[QObject *](*self);
- } else if (PyCallable_Check(callback)) {
- // Ok, just a callable object
- *receiver = nullptr;
- *self = nullptr;
- }
-
- bool usingGlobalReceiver = !*receiver || forceGlobalReceiver;
-
- // Check if this callback is a overwrite of a non-virtual Qt slot.
- if (!usingGlobalReceiver && receiver && self) {
- *callbackSig = PySide::Signal::getCallbackSignature(signal, *receiver, callback, usingGlobalReceiver).toLatin1();
- const QMetaObject *metaObject = (*receiver)->metaObject();
- int slotIndex = metaObject->indexOfSlot(callbackSig->constData());
- if (slotIndex != -1 && slotIndex < metaObject->methodOffset() && PyMethod_Check(callback))
- usingGlobalReceiver = true;
- }
-
- if (usingGlobalReceiver) {
- PySide::SignalManager &signalManager = PySide::SignalManager::instance();
- *receiver = signalManager.globalReceiver(source, callback);
- *callbackSig = PySide::Signal::getCallbackSignature(signal, *receiver, callback, usingGlobalReceiver).toLatin1();
- }
-
- return usingGlobalReceiver;
-}
-
-static bool qobjectConnect(QObject *source, const char *signal, QObject *receiver, const char *slot, Qt::ConnectionType type)
-{
- if (!signal || !slot)
- return false;
-
- if (!PySide::Signal::checkQtSignal(signal))
- return false;
- signal++;
-
- if (!PySide::SignalManager::registerMetaMethod(source, signal, QMetaMethod::Signal))
- return false;
-
- bool isSignal = PySide::Signal::isQtSignal(slot);
- slot++;
- PySide::SignalManager::registerMetaMethod(receiver, slot, isSignal ? QMetaMethod::Signal : QMetaMethod::Slot);
- bool connection;
- Py_BEGIN_ALLOW_THREADS
- connection = QObject::connect(source, signal - 1, receiver, slot - 1, type);
- Py_END_ALLOW_THREADS
- return connection;
-}
-
-static bool qobjectConnect(QObject *source, QMetaMethod signal, QObject *receiver, QMetaMethod slot, Qt::ConnectionType type)
-{
- return qobjectConnect(source, signal.methodSignature(), receiver, slot.methodSignature(), type);
-}
-
-static bool qobjectConnectCallback(QObject *source, const char *signal, PyObject *callback, Qt::ConnectionType type)
-{
- if (!signal || !PySide::Signal::checkQtSignal(signal))
- return false;
- signal++;
-
- int signalIndex = PySide::SignalManager::registerMetaMethodGetIndex(source, signal, QMetaMethod::Signal);
- if (signalIndex == -1)
- return false;
-
- PySide::SignalManager &signalManager = PySide::SignalManager::instance();
-
- // Extract receiver from callback
- QObject *receiver = nullptr;
- PyObject *self = nullptr;
- QByteArray callbackSig;
- bool usingGlobalReceiver = getReceiver(source, signal, callback, &receiver, &self, &callbackSig);
- if (receiver == nullptr && self == nullptr)
- return false;
-
- const QMetaObject *metaObject = receiver->metaObject();
- const char *slot = callbackSig.constData();
- int slotIndex = metaObject->indexOfSlot(slot);
- QMetaMethod signalMethod = metaObject->method(signalIndex);
-
- if (slotIndex == -1) {
- if (!usingGlobalReceiver && self && !Shiboken::Object::hasCppWrapper(reinterpret_cast<SbkObject *>(self))) {
- qWarning("You can't add dynamic slots on an object originated from C++.");
- if (usingGlobalReceiver)
- signalManager.releaseGlobalReceiver(source, receiver);
-
- return false;
- }
-
- if (usingGlobalReceiver)
- slotIndex = signalManager.globalReceiverSlotIndex(receiver, slot);
- else
- slotIndex = PySide::SignalManager::registerMetaMethodGetIndex(receiver, slot, QMetaMethod::Slot);
-
- if (slotIndex == -1) {
- if (usingGlobalReceiver)
- signalManager.releaseGlobalReceiver(source, receiver);
-
- return false;
- }
- }
- bool connection;
- Py_BEGIN_ALLOW_THREADS
- connection = QMetaObject::connect(source, signalIndex, receiver, slotIndex, type);
- Py_END_ALLOW_THREADS
- if (connection) {
- if (usingGlobalReceiver)
- signalManager.notifyGlobalReceiver(receiver);
- #ifndef AVOID_PROTECTED_HACK
- source->connectNotify(signalMethod); //Qt5: QMetaMethod instead of char *
- #else
- // Need to cast to QObjectWrapper * and call the public version of
- // connectNotify when avoiding the protected hack.
- reinterpret_cast<QObjectWrapper *>(source)->connectNotify(signalMethod); //Qt5: QMetaMethod instead of char *
- #endif
-
- return connection;
- }
-
- if (usingGlobalReceiver)
- signalManager.releaseGlobalReceiver(source, receiver);
-
- return false;
-}
-
-
-static bool qobjectDisconnectCallback(QObject *source, const char *signal, PyObject *callback)
-{
- if (!PySide::Signal::checkQtSignal(signal))
- return false;
-
- PySide::SignalManager &signalManager = PySide::SignalManager::instance();
-
- // Extract receiver from callback
- QObject *receiver = nullptr;
- PyObject *self = nullptr;
- QByteArray callbackSig;
- QMetaMethod slotMethod;
- bool usingGlobalReceiver = getReceiver(nullptr, signal, callback, &receiver, &self, &callbackSig);
- if (receiver == nullptr && self == nullptr)
- return false;
-
- const QMetaObject *metaObject = receiver->metaObject();
- int signalIndex = source->metaObject()->indexOfSignal(++signal);
- int slotIndex = -1;
-
- slotIndex = metaObject->indexOfSlot(callbackSig);
- slotMethod = metaObject->method(slotIndex);
-
- bool disconnected;
- Py_BEGIN_ALLOW_THREADS
- disconnected = QMetaObject::disconnectOne(source, signalIndex, receiver, slotIndex);
- Py_END_ALLOW_THREADS
-
- if (disconnected) {
- if (usingGlobalReceiver)
- signalManager.releaseGlobalReceiver(source, receiver);
-
- #ifndef AVOID_PROTECTED_HACK
- source->disconnectNotify(slotMethod); //Qt5: QMetaMethod instead of char *
- #else
- // Need to cast to QObjectWrapper * and call the public version of
- // connectNotify when avoiding the protected hack.
- reinterpret_cast<QObjectWrapper *>(source)->disconnectNotify(slotMethod); //Qt5: QMetaMethod instead of char *
- #endif
- return true;
- }
- return false;
-}
-// @snippet qobject-connect
-
-// @snippet qobject-connect-1
-// %FUNCTION_NAME() - disable generation of function call.
-bool %0 = qobjectConnect(%1, %2, %CPPSELF, %3, %4);
-%PYARG_0 = %CONVERTTOPYTHON[bool](%0);
-// @snippet qobject-connect-1
-
-// @snippet qobject-connect-2
-// %FUNCTION_NAME() - disable generation of function call.
-bool %0 = qobjectConnect(%1, %2, %3, %4, %5);
-%PYARG_0 = %CONVERTTOPYTHON[bool](%0);
-// @snippet qobject-connect-2
-
-// @snippet qobject-connect-3
-// %FUNCTION_NAME() - disable generation of function call.
-bool %0 = qobjectConnect(%1, %2, %3, %4, %5);
-%PYARG_0 = %CONVERTTOPYTHON[bool](%0);
-// @snippet qobject-connect-3
-
-// @snippet qobject-connect-4
-// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnectCallback(%1, %2, %PYARG_3, %4);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qobject-connect-4
-
-// @snippet qobject-connect-5
-// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnectCallback(%CPPSELF, %1, %PYARG_2, %3);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qobject-connect-5
-
-// @snippet qobject-connect-6
-// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectConnect(%CPPSELF, %1, %2, %3, %4);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qobject-connect-6
-
-// @snippet qobject-emit
-%RETURN_TYPE %0 = PySide::SignalManager::instance().emitSignal(%CPPSELF, %1, %PYARG_2);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qobject-emit
-
-// @snippet qobject-disconnect-1
-// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectDisconnectCallback(%CPPSELF, %1, %2);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qobject-disconnect-1
-
-// @snippet qobject-disconnect-2
-// %FUNCTION_NAME() - disable generation of function call.
-%RETURN_TYPE %0 = qobjectDisconnectCallback(%1, %2, %3);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qobject-disconnect-2
-
-// @snippet qfatal
-// qFatal doesn't have a stream version, so we do a
-// qWarning call followed by a qFatal() call using a
-// literal.
-qWarning() << %1;
-qFatal("[A qFatal() call was made from Python code]");
-// @snippet qfatal
-
-// @snippet moduleshutdown
-PySide::runCleanupFunctions();
-// @snippet moduleshutdown
-
-// @snippet qt-pysideinit
-Shiboken::Conversions::registerConverterName(SbkPySide2_QtCoreTypeConverters[SBK_QSTRING_IDX], "unicode");
-Shiboken::Conversions::registerConverterName(SbkPySide2_QtCoreTypeConverters[SBK_QSTRING_IDX], "str");
-Shiboken::Conversions::registerConverterName(SbkPySide2_QtCoreTypeConverters[SBK_QTCORE_QLIST_QVARIANT_IDX], "QVariantList");
-Shiboken::Conversions::registerConverterName(SbkPySide2_QtCoreTypeConverters[SBK_QTCORE_QMAP_QSTRING_QVARIANT_IDX], "QVariantMap");
-
-PySide::registerInternalQtConf();
-PySide::init(module);
-Py_AtExit(QtCoreModuleExit);
-// @snippet qt-pysideinit
-
-// @snippet qt-messagehandler
-// Define a global variable to handle qInstallMessageHandler callback
-static PyObject *qtmsghandler = nullptr;
-
-static void msgHandlerCallback(QtMsgType type, const QMessageLogContext &ctx, const QString &msg)
-{
- Shiboken::GilState state;
- Shiboken::AutoDecRef arglist(PyTuple_New(3));
- PyTuple_SET_ITEM(arglist, 0, %CONVERTTOPYTHON[QtMsgType](type));
- PyTuple_SET_ITEM(arglist, 1, %CONVERTTOPYTHON[QMessageLogContext &](ctx));
- QByteArray array = msg.toLocal8Bit();
- char *data = array.data();
- PyTuple_SET_ITEM(arglist, 2, %CONVERTTOPYTHON[char *](data));
- Shiboken::AutoDecRef ret(PyObject_CallObject(qtmsghandler, arglist));
-}
-static void QtCoreModuleExit()
-{
- PySide::SignalManager::instance().clear();
-}
-// @snippet qt-messagehandler
-
-// @snippet qt-installmessagehandler
-if (%PYARG_1 == Py_None) {
- qInstallMessageHandler(0);
- %PYARG_0 = qtmsghandler ? qtmsghandler : Py_None;
- qtmsghandler = 0;
-} else if (!PyCallable_Check(%PYARG_1)) {
- PyErr_SetString(PyExc_TypeError, "parameter must be callable");
-} else {
- %PYARG_0 = qtmsghandler ? qtmsghandler : Py_None;
- Py_INCREF(%PYARG_1);
- qtmsghandler = %PYARG_1;
- qInstallMessageHandler(msgHandlerCallback);
-}
-
-if (%PYARG_0 == Py_None)
- Py_INCREF(%PYARG_0);
-// @snippet qt-installmessagehandler
-
-// @snippet qline-hash
-namespace PySide {
- template<> inline uint hash(const QLine &v) {
- return qHash(qMakePair(qMakePair(v.x1(), v.y1()), qMakePair(v.x2(), v.y2())));
- }
-};
-// @snippet qline-hash
-
-// @snippet qlinef-intersect
-QPointF p;
-%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &p);
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QPointF](p));
-// @snippet qlinef-intersect
-
-// @snippet qresource-data
-const void *d = %CPPSELF.%FUNCTION_NAME();
-if (d) {
- %PYARG_0 = Shiboken::Buffer::newObject(d, %CPPSELF.size());
-} else {
- Py_INCREF(Py_None);
- %PYARG_0 = Py_None;
-}
-// @snippet qresource-data
-
-// @snippet qdate-topython
-if (!PyDateTimeAPI)
- PySideDateTime_IMPORT;
-%PYARG_0 = PyDate_FromDate(%CPPSELF.year(), %CPPSELF.month(), %CPPSELF.day());
-// @snippet qdate-topython
-
-// @snippet qdate-getdate
-int year, month, day;
-%BEGIN_ALLOW_THREADS
-%CPPSELF.%FUNCTION_NAME(&year, &month, &day);
-%END_ALLOW_THREADS
-%PYARG_0 = PyTuple_New(3);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](year));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](month));
-PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[int](day));
-// @snippet qdate-getdate
-
-// @snippet qdate-weeknumber
-int yearNumber;
-%BEGIN_ALLOW_THREADS
-int week = %CPPSELF.%FUNCTION_NAME(&yearNumber);
-%END_ALLOW_THREADS
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](week));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](yearNumber));
-// @snippet qdate-weeknumber
-
-// @snippet qdatetime-1
-QDate date(%1, %2, %3);
-QTime time(%4, %5, %6, %7);
-%0 = new %TYPE(date, time, Qt::TimeSpec(%8));
-// @snippet qdatetime-1
-
-// @snippet qdatetime-2
-QDate date(%1, %2, %3);
-QTime time(%4, %5, %6);
-%0 = new %TYPE(date, time);
-// @snippet qdatetime-2
-
-// @snippet qdatetime-topython
-QDate date = %CPPSELF.date();
-QTime time = %CPPSELF.time();
-if (!PyDateTimeAPI) PySideDateTime_IMPORT;
-%PYARG_0 = PyDateTime_FromDateAndTime(date.year(), date.month(), date.day(), time.hour(), time.minute(), time.second(), time.msec()*1000);
-// @snippet qdatetime-topython
-
-// @snippet qpoint
-namespace PySide {
- template<> inline uint hash(const QPoint &v) {
- return qHash(qMakePair(v.x(), v.y()));
- }
-};
-// @snippet qpoint
-
-// @snippet qrect
-namespace PySide {
- template<> inline uint hash(const QRect &v) {
- return qHash(qMakePair(qMakePair(v.x(), v.y()), qMakePair(v.width(), v.height())));
- }
-};
-// @snippet qrect
-
-// @snippet qsize
-namespace PySide {
- template<> inline uint hash(const QSize &v) {
- return qHash(qMakePair(v.width(), v.height()));
- }
-};
-// @snippet qsize
-
-// @snippet qtime-topython
-if (!PyDateTimeAPI)
- PySideDateTime_IMPORT;
-%PYARG_0 = PyTime_FromTime(%CPPSELF.hour(), %CPPSELF.minute(), %CPPSELF.second(), %CPPSELF.msec()*1000);
-// @snippet qtime-topython
-
-// @snippet qbitarray-len
-return %CPPSELF.size();
-// @snippet qbitarray-len
-
-// @snippet qbitarray-getitem
-if (_i < 0 || _i >= %CPPSELF.size()) {
- PyErr_SetString(PyExc_IndexError, "index out of bounds");
- return 0;
-}
-bool ret = %CPPSELF.at(_i);
-return %CONVERTTOPYTHON[bool](ret);
-// @snippet qbitarray-getitem
-
-// @snippet qbitarray-setitem
-PyObject *args = Py_BuildValue("(iiO)", _i, 1, _value);
-PyObject *result = Sbk_QBitArrayFunc_setBit(self, args);
-Py_DECREF(args);
-Py_XDECREF(result);
-return !result ? -1 : 0;
-// @snippet qbitarray-setitem
-
-// @snippet unlock
-%CPPSELF.unlock();
-// @snippet unlock
-
-// @snippet qabstractitemmodel-createindex
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, %2, %PYARG_3);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qabstractitemmodel-createindex
-
-// @snippet qabstractitemmodel
-qRegisterMetaType<QVector<int> >("QVector<int>");
-// @snippet qabstractitemmodel
-
-// @snippet qobject-metaobject
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME();
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qobject-metaobject
-
-// @snippet qobject-findchild-1
-static QObject *_findChildHelper(const QObject *parent, const QString &name, PyTypeObject *desiredType)
-{
- for (auto *child : parent->children()) {
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QObject *](child));
- if (PyType_IsSubtype(Py_TYPE(pyChild), desiredType)
- && (name.isNull() || name == child->objectName())) {
- return child;
- }
- }
-
- for (auto *child : parent->children()) {
- QObject *obj = _findChildHelper(child, name, desiredType);
- if (obj)
- return obj;
- }
- return nullptr;
-}
-
-static inline bool _findChildrenComparator(const QObject *&child, const QRegExp &name)
-{
- return name.indexIn(child->objectName()) != -1;
-}
-
-static inline bool _findChildrenComparator(const QObject *&child, const QString &name)
-{
- return name.isNull() || name == child->objectName();
-}
-
-template<typename T>
-static void _findChildrenHelper(const QObject *parent, const T& name, PyTypeObject *desiredType, PyObject *result)
-{
- for (const auto *child : parent->children()) {
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QObject *](child));
- if (PyType_IsSubtype(Py_TYPE(pyChild), desiredType) && _findChildrenComparator(child, name))
- PyList_Append(result, pyChild);
- _findChildrenHelper(child, name, desiredType, result);
- }
-}
-// @snippet qobject-findchild-1
-
-// @snippet qobject-findchild-2
-QObject *child = _findChildHelper(%CPPSELF, %2, reinterpret_cast<PyTypeObject *>(%PYARG_1));
-%PYARG_0 = %CONVERTTOPYTHON[QObject *](child);
-// @snippet qobject-findchild-2
-
-// @snippet qobject-findchildren-1
-%PYARG_0 = PyList_New(0);
-_findChildrenHelper(%CPPSELF, %2, reinterpret_cast<PyTypeObject *>(%PYARG_1), %PYARG_0);
-// @snippet qobject-findchildren-1
-
-// @snippet qobject-findchildren-2
-%PYARG_0 = PyList_New(0);
-_findChildrenHelper(%CPPSELF, %2, reinterpret_cast<PyTypeObject *>(%PYARG_1), %PYARG_0);
-// @snippet qobject-findchildren-2
-
-// @snippet qobject-tr
-QString result;
-if (QCoreApplication::instance()) {
- PyObject *klass = PyObject_GetAttrString(%PYSELF, "__class__");
- PyObject *cname = PyObject_GetAttrString(klass, "__name__");
- result = QString(QCoreApplication::instance()->translate(Shiboken::String::toCString(cname),
- /* %1, %2, QCoreApplication::CodecForTr, %3)); */
- %1, %2, %3));
-
- Py_DECREF(klass);
- Py_DECREF(cname);
-} else {
- result = QString(QString::fromLatin1(%1));
-}
-%PYARG_0 = %CONVERTTOPYTHON[QString](result);
-// @snippet qobject-tr
-
-// @snippet qobject-receivers
-// Avoid return +1 because SignalManager connect to "destroyed()" signal to control object timelife
-int ret = %CPPSELF.%FUNCTION_NAME(%1);
-if (ret > 0 && ((strcmp(%1, SIGNAL(destroyed())) == 0) || (strcmp(%1, SIGNAL(destroyed(QObject*))) == 0)))
- ret -= PySide::SignalManager::instance().countConnectionsWith(%CPPSELF);
-
-%PYARG_0 = %CONVERTTOPYTHON[int](ret);
-// @snippet qobject-receivers
-
-// @snippet qregexp-replace
-%1.replace(*%CPPSELF, %2);
-%PYARG_0 = %CONVERTTOPYTHON[QString](%1);
-// @snippet qregexp-replace
-
-// @snippet qbytearray-mgetitem
-if (PyIndex_Check(_key)) {
- Py_ssize_t _i;
- _i = PyNumber_AsSsize_t(_key, PyExc_IndexError);
- if (_i < 0 || _i >= %CPPSELF.size()) {
- PyErr_SetString(PyExc_IndexError, "index out of bounds");
- return 0;
- } else {
- char res[2];
- res[0] = %CPPSELF.at(_i);
- res[1] = 0;
- return PyBytes_FromStringAndSize(res, 1);
- }
-} else if (PySlice_Check(_key)) {
- Py_ssize_t start, stop, step, slicelength, cur;
-
-#ifdef IS_PY3K
- PyObject *key = _key;
-#else
- PySliceObject *key = reinterpret_cast<PySliceObject *>(_key);
-#endif
- if (PySlice_GetIndicesEx(key, %CPPSELF.count(), &start, &stop, &step, &slicelength) < 0) {
- return nullptr;
- }
-
- QByteArray ba;
- if (slicelength <= 0) {
- return %CONVERTTOPYTHON[QByteArray](ba);
- } else if (step == 1) {
- Py_ssize_t max = %CPPSELF.count();
- start = qBound(Py_ssize_t(0), start, max);
- stop = qBound(Py_ssize_t(0), stop, max);
- QByteArray ba;
- if (start < stop)
- ba = %CPPSELF.mid(start, stop - start);
- return %CONVERTTOPYTHON[QByteArray](ba);
- } else {
- QByteArray ba;
- for (cur = start; slicelength > 0; cur += static_cast<size_t>(step), slicelength--) {
- ba.append(%CPPSELF.at(cur));
- }
- return %CONVERTTOPYTHON[QByteArray](ba);
- }
-} else {
- PyErr_Format(PyExc_TypeError,
- "list indices must be integers or slices, not %.200s",
- Py_TYPE(_key)->tp_name);
- return nullptr;
-}
-// @snippet qbytearray-mgetitem
-
-// @snippet qbytearray-msetitem
-if (PyIndex_Check(_key)) {
- Py_ssize_t _i = PyNumber_AsSsize_t(_key, PyExc_IndexError);
- if (_i == -1 && PyErr_Occurred())
- return -1;
-
- if (_i < 0)
- _i += %CPPSELF.count();
-
- if (_i < 0 || _i >= %CPPSELF.size()) {
- PyErr_SetString(PyExc_IndexError, "QByteArray index out of range");
- return -1;
- }
-
- // Provide more specific error message for bytes/str, bytearray, QByteArray respectively
-#ifdef IS_PY3K
- if (PyBytes_Check(_value)) {
- if (Py_SIZE(_value) != 1) {
- PyErr_SetString(PyExc_ValueError, "bytes must be of size 1");
-#else
- if (PyString_CheckExact(_value)) {
- if (Py_SIZE(_value) != 1) {
- PyErr_SetString(PyExc_ValueError, "str must be of size 1");
-#endif
- return -1;
- }
- } else if (PyByteArray_Check(_value)) {
- if (Py_SIZE(_value) != 1) {
- PyErr_SetString(PyExc_ValueError, "bytearray must be of size 1");
- return -1;
- }
- } else if (reinterpret_cast<PyTypeObject *>(Py_TYPE(_value)) == reinterpret_cast<PyTypeObject *>(SbkPySide2_QtCoreTypes[SBK_QBYTEARRAY_IDX])) {
- if (PyObject_Length(_value) != 1) {
- PyErr_SetString(PyExc_ValueError, "QByteArray must be of size 1");
- return -1;
- }
- } else {
-#ifdef IS_PY3K
- PyErr_SetString(PyExc_ValueError, "a bytes, bytearray, QByteArray of size 1 is required");
-#else
- PyErr_SetString(PyExc_ValueError, "a str, bytearray, QByteArray of size 1 is required");
-#endif
- return -1;
- }
-
- // Not support int or long.
- %CPPSELF.remove(_i, 1);
- PyObject *args = Py_BuildValue("(nO)", _i, _value);
- PyObject *result = Sbk_QByteArrayFunc_insert(self, args);
- Py_DECREF(args);
- Py_XDECREF(result);
- return !result ? -1 : 0;
-} else if (PySlice_Check(_key)) {
- Py_ssize_t start, stop, step, slicelength, value_length;
-
-#ifdef IS_PY3K
- PyObject *key = _key;
-#else
- PySliceObject *key = reinterpret_cast<PySliceObject *>(_key);
-#endif
- if (PySlice_GetIndicesEx(key, %CPPSELF.count(), &start, &stop, &step, &slicelength) < 0) {
- return -1;
- }
- // The parameter candidates are: bytes/str, bytearray, QByteArray itself.
- // Not support iterable which contains ints between 0~255
-
- // case 1: value is nullpre, means delete the items within the range
- // case 2: step is 1, means shrink or expanse
- // case 3: step is not 1, then the number of slots have to equal the number of items in _value
- QByteArray ba;
- if (_value == nullptr || _value == Py_None) {
- ba = QByteArray();
- value_length = 0;
- } else if (!(PyBytes_Check(_value) || PyByteArray_Check(_value) || reinterpret_cast<PyTypeObject *>(Py_TYPE(_value)) == reinterpret_cast<PyTypeObject *>(SbkPySide2_QtCoreTypes[SBK_QBYTEARRAY_IDX]))) {
- PyErr_Format(PyExc_TypeError, "bytes, bytearray or QByteArray is required, not %.200s", Py_TYPE(_value)->tp_name);
- return -1;
- } else {
- value_length = PyObject_Length(_value);
- }
-
- if (step != 1 && value_length != slicelength) {
- PyErr_Format(PyExc_ValueError, "attempt to assign %s of size %d to extended slice of size %d",
- Py_TYPE(_value)->tp_name, int(value_length), int(slicelength));
- return -1;
- }
-
- if (step != 1) {
- int i = start;
- for (int j = 0; j < slicelength; j++) {
- PyObject *item = PyObject_GetItem(_value, PyLong_FromLong(j));
- QByteArray temp;
-#ifdef IS_PY3K
- if (PyLong_Check(item)) {
-#else
- if (PyLong_Check(item) || PyInt_Check(item)) {
-#endif
- int overflow;
- long ival = PyLong_AsLongAndOverflow(item, &overflow);
- // Not suppose to bigger than 255 because only bytes, bytearray, QByteArray were accept
- temp = QByteArray(reinterpret_cast<const char *>(&ival));
- } else {
- temp = %CONVERTTOCPP[QByteArray](item);
- }
-
- %CPPSELF.replace(i, 1, temp);
- i += step;
- }
- return 0;
- } else {
- ba = %CONVERTTOCPP[QByteArray](_value);
- %CPPSELF.replace(start, slicelength, ba);
- return 0;
- }
-} else {
- PyErr_Format(PyExc_TypeError, "QBytearray indices must be integers or slices, not %.200s",
- Py_TYPE(_key)->tp_name);
- return -1;
-}
-// @snippet qbytearray-msetitem
-
-// @snippet qbytearray-bufferprotocol
-extern "C" {
-// QByteArray buffer protocol functions
-// see: http://www.python.org/dev/peps/pep-3118/
-
-static int SbkQByteArray_getbufferproc(PyObject *obj, Py_buffer *view, int flags)
-{
- if (!view || !Shiboken::Object::isValid(obj))
- return -1;
-
- QByteArray * cppSelf = %CONVERTTOCPP[QByteArray *](obj);
- //XXX /|\ omitting this space crashes shiboken!
- view->obj = obj;
- view->buf = reinterpret_cast<void *>(cppSelf->data());
- view->len = cppSelf->size();
- view->readonly = 0;
- view->itemsize = 1;
- view->format = const_cast<char *>("c");
- view->ndim = 1;
- view->shape = NULL;
- view->strides = &view->itemsize;
- view->suboffsets = NULL;
- view->internal = NULL;
-
- Py_XINCREF(obj);
- return 0;
-}
-
-#if PY_VERSION_HEX < 0x03000000
-static Py_ssize_t SbkQByteArray_segcountproc(PyObject *self, Py_ssize_t *lenp)
-{
- if (lenp)
- *lenp = Py_TYPE(self)->tp_as_sequence->sq_length(self);
- return 1;
-}
-
-static Py_ssize_t SbkQByteArray_readbufferproc(PyObject *self, Py_ssize_t segment, void **ptrptr)
-{
- if (segment || !Shiboken::Object::isValid(self))
- return -1;
-
- QByteArray * cppSelf = %CONVERTTOCPP[QByteArray *](self);
- //XXX /|\ omitting this space crashes shiboken!
- *ptrptr = reinterpret_cast<void *>(cppSelf->data());
- return cppSelf->size();
-}
-
-PyBufferProcs SbkQByteArrayBufferProc = {
- /*bf_getreadbuffer*/ &SbkQByteArray_readbufferproc,
- /*bf_getwritebuffer*/ (writebufferproc) &SbkQByteArray_readbufferproc,
- /*bf_getsegcount*/ &SbkQByteArray_segcountproc,
- /*bf_getcharbuffer*/ (charbufferproc) &SbkQByteArray_readbufferproc,
- /*bf_getbuffer*/ (getbufferproc)SbkQByteArray_getbufferproc,
-};
-#else
-
-static PyBufferProcs SbkQByteArrayBufferProc = {
- /*bf_getbuffer*/ (getbufferproc)SbkQByteArray_getbufferproc,
- /*bf_releasebuffer*/ (releasebufferproc)0,
-};
-
-#endif
-}
-// @snippet qbytearray-bufferprotocol
-
-// @snippet qbytearray-operatorplus-1
-QByteArray ba = QByteArray(PyBytes_AS_STRING(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1)) + *%CPPSELF;
-%PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba);
-// @snippet qbytearray-operatorplus-1
-
-// @snippet qbytearray-operatorplus-2
-QByteArray ba = QByteArray(PyByteArray_AsString(%PYARG_1), PyByteArray_Size(%PYARG_1)) + *%CPPSELF;
-%PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba);
-// @snippet qbytearray-operatorplus-2
-
-// @snippet qbytearray-operatorplus-3
-QByteArray ba = *%CPPSELF + QByteArray(PyByteArray_AsString(%PYARG_1), PyByteArray_Size(%PYARG_1));
-%PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba);
-// @snippet qbytearray-operatorplus-3
-
-// @snippet qbytearray-operatorplusequal
-*%CPPSELF += QByteArray(PyByteArray_AsString(%PYARG_1), PyByteArray_Size(%PYARG_1));
-// @snippet qbytearray-operatorplusequal
-
-// @snippet qbytearray-operatorequalequal
-if (PyUnicode_CheckExact(%PYARG_1)) {
- Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(%PYARG_1));
- QByteArray ba = QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object()));
- bool cppResult = %CPPSELF == ba;
- %PYARG_0 = %CONVERTTOPYTHON[bool](cppResult);
-}
-// @snippet qbytearray-operatorequalequal
-
-// @snippet qbytearray-operatornotequal
-if (PyUnicode_CheckExact(%PYARG_1)) {
- Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(%PYARG_1));
- QByteArray ba = QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object()));
- bool cppResult = %CPPSELF != ba;
- %PYARG_0 = %CONVERTTOPYTHON[bool](cppResult);
-}
-// @snippet qbytearray-operatornotequal
-
-// @snippet qbytearray-operatorgreater
-if (PyUnicode_CheckExact(%PYARG_1)) {
- Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(%PYARG_1));
- QByteArray ba = QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object()));
- bool cppResult = %CPPSELF > ba;
- %PYARG_0 = %CONVERTTOPYTHON[bool](cppResult);
-}
-// @snippet qbytearray-operatorgreater
-
-// @snippet qbytearray-operatorgreaterequal
-if (PyUnicode_CheckExact(%PYARG_1)) {
- Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(%PYARG_1));
- QByteArray ba = QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object()));
- bool cppResult = %CPPSELF >= ba;
- %PYARG_0 = %CONVERTTOPYTHON[bool](cppResult);
-}
-// @snippet qbytearray-operatorgreaterequal
-
-// @snippet qbytearray-operatorlower
-if (PyUnicode_CheckExact(%PYARG_1)) {
- Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(%PYARG_1));
- QByteArray ba = QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object()));
- bool cppResult = %CPPSELF < ba;
- %PYARG_0 = %CONVERTTOPYTHON[bool](cppResult);
-}
-// @snippet qbytearray-operatorlower
-
-// @snippet qbytearray-operatorlowerequal
-if (PyUnicode_CheckExact(%PYARG_1)) {
- Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(%PYARG_1));
- QByteArray ba = QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object()));
- bool cppResult = %CPPSELF <= ba;
- %PYARG_0 = %CONVERTTOPYTHON[bool](cppResult);
-}
-// @snippet qbytearray-operatorlowerequal
-
-// @snippet qbytearray-repr
-PyObject *aux = PyBytes_FromStringAndSize(%CPPSELF.constData(), %CPPSELF.size());
-if (aux == nullptr) {
- return nullptr;
-}
-QByteArray b(Py_TYPE(%PYSELF)->tp_name);
-#ifdef IS_PY3K
- %PYARG_0 = PyUnicode_FromFormat("%s(%R)", b.constData(), aux);
-#else
- aux = PyObject_Repr(aux);
- b += '(';
- b += QByteArray(PyBytes_AS_STRING(aux), PyBytes_GET_SIZE(aux));
- b += ')';
- %PYARG_0 = Shiboken::String::fromStringAndSize(b.constData(), b.size());
-#endif
-Py_DECREF(aux);
-// @snippet qbytearray-repr
-
-// @snippet qbytearray-1
-if (PyBytes_Check(%PYARG_1)) {
- %0 = new QByteArray(PyBytes_AsString(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1));
-} else if (Shiboken::String::check(%PYARG_1)) {
- %0 = new QByteArray(Shiboken::String::toCString(%PYARG_1), Shiboken::String::len(%PYARG_1));
-}
-// @snippet qbytearray-1
-
-// @snippet qbytearray-2
-%0 = new QByteArray(PyByteArray_AsString(%PYARG_1), PyByteArray_Size(%PYARG_1));
-// @snippet qbytearray-2
-
-// @snippet qbytearray-3
-%0 = new QByteArray(PyBytes_AS_STRING(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1));
-// @snippet qbytearray-3
-
-// @snippet qbytearray-py3
-#if PY_VERSION_HEX < 0x03000000
-Shiboken::SbkType<QByteArray>()->tp_as_buffer = &SbkQByteArrayBufferProc;
-Shiboken::SbkType<QByteArray>()->tp_flags |= Py_TPFLAGS_HAVE_NEWBUFFER;
-#else
-PepType_AS_BUFFER(Shiboken::SbkType<QByteArray>()) = &SbkQByteArrayBufferProc;
-#endif
-// @snippet qbytearray-py3
-
-// @snippet qbytearray-data
-%PYARG_0 = PyBytes_FromStringAndSize(%CPPSELF.%FUNCTION_NAME(), %CPPSELF.size());
-// @snippet qbytearray-data
-
-// @snippet qbytearray-fromrawdata
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(PyBytes_AsString(%PYARG_1), PyBytes_GET_SIZE(%PYARG_1));
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qbytearray-fromrawdata
-
-// @snippet qbytearray-str
-PyObject *aux = PyBytes_FromStringAndSize(%CPPSELF.constData(), %CPPSELF.size());
-if (aux == nullptr) {
- return nullptr;
-}
-#ifdef IS_PY3K
- %PYARG_0 = PyObject_Repr(aux);
- Py_DECREF(aux);
-#else
- %PYARG_0 = aux;
-#endif
-// @snippet qbytearray-str
-
-// @snippet qbytearray-len
-return %CPPSELF.count();
-// @snippet qbytearray-len
-
-// @snippet qbytearray-getitem
-if (_i < 0 || _i >= %CPPSELF.size()) {
- PyErr_SetString(PyExc_IndexError, "index out of bounds");
- return 0;
-} else {
- char res[2];
- res[0] = %CPPSELF.at(_i);
- res[1] = 0;
- return PyBytes_FromStringAndSize(res, 1);
-}
-// @snippet qbytearray-getitem
-
-// @snippet qbytearray-setitem
-%CPPSELF.remove(_i, 1);
-PyObject *args = Py_BuildValue("(nO)", _i, _value);
-PyObject *result = Sbk_QByteArrayFunc_insert(self, args);
-Py_DECREF(args);
-Py_XDECREF(result);
-return !result ? -1 : 0;
-// @snippet qbytearray-setitem
-
-// @snippet qfiledevice-unmap
-uchar *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1));
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(ptr);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qfiledevice-unmap
-
-// @snippet qfiledevice-map
-%PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1, %2, %3), %2, Shiboken::Buffer::ReadWrite);
-// @snippet qfiledevice-map
-
-// @snippet qiodevice-readdata
-QByteArray ba(1 + int(%2), char(0));
-%CPPSELF.%FUNCTION_NAME(ba.data(), int(%2));
-%PYARG_0 = Shiboken::String::fromCString(ba.constData());
-// @snippet qiodevice-readdata
-
-// @snippet qcryptographichash-adddata
-%CPPSELF.%FUNCTION_NAME(Shiboken::String::toCString(%PYARG_1), Shiboken::String::len(%PYARG_1));
-// @snippet qcryptographichash-adddata
-
-// @snippet qsocketnotifier
-PyObject *socket = %PYARG_1;
-if (socket != nullptr) {
- // We use qintptr as PyLong, but we check for int
- // since it is currently an alias to be Python2 compatible.
- // Internally, ints are qlonglongs.
- if (%CHECKTYPE[int](socket)) {
- int cppSocket = %CONVERTTOCPP[int](socket);
- qintptr socket = (qintptr)cppSocket;
- %0 = new %TYPE(socket, %2, %3);
- } else {
- PyErr_SetString(PyExc_TypeError,
- "QSocketNotifier: first argument (socket) must be an int.");
- }
-}
-// @snippet qsocketnotifier
-
-// @snippet qtranslator-load
-Py_ssize_t size;
-uchar *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1, &size));
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(const_cast<const uchar *>(ptr), size);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qtranslator-load
-
-// @snippet qtimer-singleshot-1
-// %FUNCTION_NAME() - disable generation of c++ function call
-(void) %2; // remove warning about unused variable
-Shiboken::AutoDecRef emptyTuple(PyTuple_New(0));
-PyObject *pyTimer = reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>())->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0);
-reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>())->tp_init(pyTimer, emptyTuple, 0);
-
-QTimer * timer = %CONVERTTOCPP[QTimer *](pyTimer);
-//XXX /|\ omitting this space crashes shiboken!
-Shiboken::AutoDecRef result(
- PyObject_CallMethod(pyTimer,
- const_cast<char *>("connect"),
- const_cast<char *>("OsOs"),
- pyTimer,
- SIGNAL(timeout()),
- %PYARG_2,
- %3)
-);
-Shiboken::Object::releaseOwnership((SbkObject *)pyTimer);
-Py_XDECREF(pyTimer);
-timer->setSingleShot(true);
-timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()));
-timer->start(%1);
-// @snippet qtimer-singleshot-1
-
-// @snippet qtimer-singleshot-2
-// %FUNCTION_NAME() - disable generation of c++ function call
-Shiboken::AutoDecRef emptyTuple(PyTuple_New(0));
-PyObject *pyTimer = reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>())->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0);
-reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>())->tp_init(pyTimer, emptyTuple, 0);
-QTimer * timer = %CONVERTTOCPP[QTimer *](pyTimer);
-timer->setSingleShot(true);
-
-if (PyObject_TypeCheck(%2, PySideSignalInstanceTypeF())) {
- PySideSignalInstance *signalInstance = reinterpret_cast<PySideSignalInstance *>(%2);
- Shiboken::AutoDecRef signalSignature(Shiboken::String::fromFormat("2%s", PySide::Signal::getSignature(signalInstance)));
- Shiboken::AutoDecRef result(
- PyObject_CallMethod(pyTimer,
- const_cast<char *>("connect"),
- const_cast<char *>("OsOO"),
- pyTimer,
- SIGNAL(timeout()),
- PySide::Signal::getObject(signalInstance),
- signalSignature.object())
- );
-} else {
- Shiboken::AutoDecRef result(
- PyObject_CallMethod(pyTimer,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- pyTimer,
- SIGNAL(timeout()),
- %PYARG_2)
- );
-}
-
-timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()), Qt::DirectConnection);
-Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(pyTimer));
-Py_XDECREF(pyTimer);
-timer->start(%1);
-// @snippet qtimer-singleshot-2
-
-// @snippet qprocess-startdetached
-qint64 pid;
-%RETURN_TYPE retval = %TYPE::%FUNCTION_NAME(%1, %2, %3, &pid);
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[qint64](pid));
-// @snippet qprocess-startdetached
-
-// @snippet qprocess-pid
-long result;
-#ifdef WIN32
- _PROCESS_INFORMATION *procInfo = %CPPSELF.%FUNCTION_NAME();
- result = procInfo ? procInfo->dwProcessId : 0;
-#else
- result = %CPPSELF.%FUNCTION_NAME();
-#endif
-%PYARG_0 = %CONVERTTOPYTHON[long](result);
-// @snippet qprocess-pid
-
-// @snippet qcoreapplication-init
-static void QCoreApplicationConstructor(PyObject *self, PyObject *pyargv, QCoreApplicationWrapper **cptr)
-{
- static int argc;
- static char **argv;
- PyObject *stringlist = PyTuple_GET_ITEM(pyargv, 0);
- if (Shiboken::listToArgcArgv(stringlist, &argc, &argv, "PySideApp")) {
- *cptr = new QCoreApplicationWrapper(argc, argv);
- Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(self));
- PySide::registerCleanupFunction(&PySide::destroyQCoreApplication);
- }
-}
-// @snippet qcoreapplication-init
-
-// @snippet qcoreapplication-1
-QCoreApplicationConstructor(%PYSELF, args, &%0);
-// @snippet qcoreapplication-1
-
-// @snippet qcoreapplication-2
-PyObject *empty = PyTuple_New(2);
-if (!PyTuple_SetItem(empty, 0, PyList_New(0))) {
- QCoreApplicationConstructor(%PYSELF, empty, &%0);
-}
-// @snippet qcoreapplication-2
-
-// @snippet qcoreapplication-instance
-PyObject *pyApp = Py_None;
-if (qApp) {
- pyApp = reinterpret_cast<PyObject *>(
- Shiboken::BindingManager::instance().retrieveWrapper(qApp));
- if (!pyApp)
- pyApp = %CONVERTTOPYTHON[QCoreApplication *](qApp);
- // this will keep app live after python exit (extra ref)
-}
-// PYSIDE-571: make sure that we return the singleton "None"
-if (pyApp == Py_None)
- Py_DECREF(MakeSingletonQAppWrapper(nullptr)); // here qApp and instance() diverge
-%PYARG_0 = pyApp;
-Py_XINCREF(%PYARG_0);
-// @snippet qcoreapplication-instance
-
-// @snippet qdatastream-readrawdata
-QByteArray data;
-data.resize(%2);
-int result = %CPPSELF.%FUNCTION_NAME(data.data(), data.size());
-if (result == -1) {
- Py_INCREF(Py_None);
- %PYARG_0 = Py_None;
-} else {
- %PYARG_0 = PyBytes_FromStringAndSize(data.data(), result);
-}
-// @snippet qdatastream-readrawdata
-
-// @snippet qdatastream-writerawdata
-int r = %CPPSELF.%FUNCTION_NAME(%1, Shiboken::String::len(%PYARG_1));
-%PYARG_0 = %CONVERTTOPYTHON[int](r);
-// @snippet qdatastream-writerawdata
-
-// @snippet releaseownership
-Shiboken::Object::releaseOwnership(%PYARG_0);
-// @snippet releaseownership
-
-// @snippet qanimationgroup-clear
-for (int counter = 0, count = %CPPSELF.animationCount(); counter < count; ++counter ) {
- QAbstractAnimation *animation = %CPPSELF.animationAt(counter);
- PyObject *obj = %CONVERTTOPYTHON[QAbstractAnimation *](animation);
- Shiboken::Object::setParent(nullptr, obj);
- Py_DECREF(obj);
-}
-%CPPSELF.clear();
-// @snippet qanimationgroup-clear
-
-// @snippet qeasingcurve
-PySideEasingCurveFunctor::init();
-// @snippet qeasingcurve
-
-// @snippet qeasingcurve-setcustomtype
-QEasingCurve::EasingFunction func = PySideEasingCurveFunctor::createCustomFuntion(%PYSELF, %PYARG_1);
-if (func)
- %CPPSELF.%FUNCTION_NAME(func);
-// @snippet qeasingcurve-setcustomtype
-
-// @snippet qeasingcurve-customtype
-//%FUNCTION_NAME()
-%PYARG_0 = PySideEasingCurveFunctor::callable(%PYSELF);
-// @snippet qeasingcurve-customtype
-
-// @snippet qsignaltransition
-if (PyObject_TypeCheck(%1, PySideSignalInstanceTypeF())) {
- PyObject *dataSource = PySide::Signal::getObject((PySideSignalInstance *)%PYARG_1);
- Shiboken::AutoDecRef obType(PyObject_Type(dataSource));
- QObject * sender = %CONVERTTOCPP[QObject *](dataSource);
- //XXX /|\ omitting this space crashes shiboken!
- if (sender) {
- const char *dataSignature = PySide::Signal::getSignature((PySideSignalInstance *)%PYARG_1);
- QByteArray signature(dataSignature); // Append SIGNAL flag (2)
- signature.prepend('2');
- %0 = new QSignalTransitionWrapper(sender, signature, %2);
- }
-}
-// @snippet qsignaltransition
-
-// @snippet qstate-addtransition-1
-QString signalName(%2);
-if (PySide::SignalManager::registerMetaMethod(%1, signalName.mid(1).toLatin1().data(), QMetaMethod::Signal)) {
- QSignalTransition *%0 = %CPPSELF->addTransition(%1, %2, %3);
- %PYARG_0 = %CONVERTTOPYTHON[QSignalTransition *](%0);
-} else {
- Py_INCREF(Py_None);
- %PYARG_0 = Py_None;
-}
-// @snippet qstate-addtransition-1
-
-// @snippet qstate-addtransition-2
-// Obviously the label used by the following goto is a very awkward solution,
-// since it refers to a name very tied to the generator implementation.
-// Check bug #362 for more information on this
-// http://bugs.openbossa.org/show_bug.cgi?id=362
-if (!PyObject_TypeCheck(%1, PySideSignalInstanceTypeF()))
- goto Sbk_%TYPEFunc_%FUNCTION_NAME_TypeError;
-PySideSignalInstance *signalInstance = reinterpret_cast<PySideSignalInstance *>(%1);
-QObject * sender = %CONVERTTOCPP[QObject *](PySide::Signal::getObject(signalInstance));
-//XXX /|\ omitting this space crashes shiboken!
-QSignalTransition *%0 = %CPPSELF->%FUNCTION_NAME(sender, PySide::Signal::getSignature(signalInstance),%2);
-%PYARG_0 = %CONVERTTOPYTHON[QSignalTransition *](%0);
-// @snippet qstate-addtransition-2
-
-// @snippet qstatemachine-configuration
-%PYARG_0 = PySet_New(0);
-for (auto *abs_state : %CPPSELF.configuration()) {
- Shiboken::AutoDecRef obj(%CONVERTTOPYTHON[QAbstractState *](abs_state));
- Shiboken::Object::setParent(self, obj);
- PySet_Add(%PYARG_0, obj);
-}
-// @snippet qstatemachine-configuration
-
-// @snippet qstatemachine-defaultanimations
-%PYARG_0 = PyList_New(0);
-for (auto *abs_anim : %CPPSELF.defaultAnimations()) {
- Shiboken::AutoDecRef obj(%CONVERTTOPYTHON[QAbstractAnimation *](abs_anim));
- Shiboken::Object::setParent(self, obj);
- PyList_Append(%PYARG_0, obj);
-}
-// @snippet qstatemachine-defaultanimations
-
-// @snippet qt-signal
-%PYARG_0 = Shiboken::String::fromFormat("2%s",QMetaObject::normalizedSignature(%1).constData());
-// @snippet qt-signal
-
-// @snippet qt-slot
-%PYARG_0 = Shiboken::String::fromFormat("1%s",QMetaObject::normalizedSignature(%1).constData());
-// @snippet qt-slot
-
-// @snippet qt-registerresourcedata
-QT_BEGIN_NAMESPACE
-extern bool
-qRegisterResourceData(int,
- const unsigned char *,
- const unsigned char *,
- const unsigned char *);
-
-extern bool
-qUnregisterResourceData(int,
- const unsigned char *,
- const unsigned char *,
- const unsigned char *);
-QT_END_NAMESPACE
-// @snippet qt-registerresourcedata
-
-// @snippet qt-qregisterresourcedata
-%RETURN_TYPE %0 = %FUNCTION_NAME(%1, reinterpret_cast<uchar *>(PyBytes_AS_STRING(%PYARG_2)),
- reinterpret_cast<uchar *>(PyBytes_AS_STRING(%PYARG_3)),
- reinterpret_cast<uchar *>(PyBytes_AS_STRING(%PYARG_4)));
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qt-qregisterresourcedata
-
-// @snippet qt-qunregisterresourcedata
-%RETURN_TYPE %0 = %FUNCTION_NAME(%1, reinterpret_cast<uchar *>(PyBytes_AS_STRING(%PYARG_2)),
- reinterpret_cast<uchar *>(PyBytes_AS_STRING(%PYARG_3)),
- reinterpret_cast<uchar *>(PyBytes_AS_STRING(%PYARG_4)));
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qt-qunregisterresourcedata
-
-// @snippet use-stream-for-format-security
-// Uses the stream version for security reasons
-// see gcc man page at -Wformat-security
-%FUNCTION_NAME() << %1;
-// @snippet use-stream-for-format-security
-
-// @snippet qresource-registerResource
- auto ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1));
- %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(const_cast<const uchar *>(ptr), %2);
- %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-// @snippet qresource-registerResource
-
-// @snippet qstring-return
-%PYARG_0 = %CONVERTTOPYTHON[QString](%1);
-// @snippet qstring-return
-
-// @snippet stream-write-method
-(*%CPPSELF) << %1;
-// @snippet stream-write-method
-
-// @snippet stream-read-method
-%RETURN_TYPE _cpp_result;
-(*%CPPSELF) >> _cpp_result;
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](_cpp_result);
-// @snippet stream-read-method
-
-// @snippet return-qstring-ref
-QString &res = *%0;
-%PYARG_0 = %CONVERTTOPYTHON[QString](res);
-// @snippet return-qstring-ref
-
-// @snippet return-readData
-%RETURN_TYPE %0 = 0;
-if (PyBytes_Check(%PYARG_0)) {
- %0 = PyBytes_GET_SIZE((PyObject *)%PYARG_0);
- memcpy(%1, PyBytes_AS_STRING((PyObject *)%PYARG_0), %0);
-} else if (Shiboken::String::check(%PYARG_0)) {
- %0 = Shiboken::String::len((PyObject *)%PYARG_0);
- memcpy(%1, Shiboken::String::toCString((PyObject *)%PYARG_0), %0);
-}
-// @snippet return-readData
-
-// @snippet qiodevice-readData
-QByteArray ba(1 + int(%2), char(0));
-%CPPSELF.%FUNCTION_NAME(ba.data(), int(%2));
-%PYARG_0 = Shiboken::String::fromCString(ba.constData());
-// @snippet qiodevice-readData
-
-// @snippet qt-module-shutdown
-{ // Avoid name clash
- Shiboken::AutoDecRef regFunc(static_cast<PyObject *>(nullptr));
- Shiboken::AutoDecRef atexit(Shiboken::Module::import("atexit"));
- if (atexit.isNull()) {
- qWarning("Module atexit not found for registering __moduleShutdown");
- PyErr_Clear();
- }else{
- regFunc.reset(PyObject_GetAttrString(atexit, "register"));
- if (regFunc.isNull()) {
- qWarning("Function atexit.register not found for registering __moduleShutdown");
- PyErr_Clear();
- }
- }
- if (!atexit.isNull() && !regFunc.isNull()){
- PyObject *shutDownFunc = PyObject_GetAttrString(module, "__moduleShutdown");
- Shiboken::AutoDecRef args(PyTuple_New(1));
- PyTuple_SET_ITEM(args, 0, shutDownFunc);
- Shiboken::AutoDecRef retval(PyObject_Call(regFunc, args, 0));
- Q_ASSERT(!retval.isNull());
- }
-}
-// @snippet qt-module-shutdown
-
-
-/*********************************************************************
- * CONVERSIONS
- ********************************************************************/
-
-// @snippet conversion-pybool
-%out = %OUTTYPE(%in == Py_True);
-// @snippet conversion-pybool
-
-// @snippet conversion-pylong
-%out = %OUTTYPE(PyLong_AsLong(%in));
-// @snippet conversion-pylong
-
-// @snippet conversion-pylong-unsigned
-%out = %OUTTYPE(PyLong_AsUnsignedLong(%in));
-// @snippet conversion-pylong-unsigned
-
-// @snippet conversion-pyunicode
-#ifndef Py_LIMITED_API
-Py_UNICODE *unicode = PyUnicode_AS_UNICODE(%in);
-# if defined(Py_UNICODE_WIDE)
-// cast as Py_UNICODE can be a different type
-%out = QString::fromUcs4((const uint *)unicode);
-# else
-%out = QString::fromUtf16((const ushort *)unicode, PyUnicode_GET_SIZE(%in));
-# endif
-#else
-wchar_t *temp = PyUnicode_AsWideCharString(%in, NULL);
-%out = QString::fromWCharArray(temp);
-PyMem_Free(temp);
-#endif
-// @snippet conversion-pyunicode
-
-// @snippet conversion-pystring
-#ifndef IS_PY3K
-const char * str = %CONVERTTOCPP[const char *](%in);
-//XXX /|\ omitting this space crashes shiboken!
-%out = %OUTTYPE(str);
-#endif
-// @snippet conversion-pystring
-
-// @snippet conversion-pynone
-%out = %OUTTYPE();
-// @snippet conversion-pynone
-
-// @snippet conversion-pystring-char
-char c = %CONVERTTOCPP[char](%in);
-%out = %OUTTYPE(c);
-// @snippet conversion-pystring-char
-
-// @snippet conversion-pyint
-int i = %CONVERTTOCPP[int](%in);
-%out = %OUTTYPE(i);
-// @snippet conversion-pyint
-
-// @snippet conversion-qlonglong
-qlonglong in = %CONVERTTOCPP[qlonglong](%in);
-%out = %OUTTYPE(in);
-// @snippet conversion-qlonglong
-
-// @snippet conversion-qstring
-QString in = %CONVERTTOCPP[QString](%in);
-%out = %OUTTYPE(in);
-// @snippet conversion-qstring
-
-// @snippet conversion-qbytearray
-QByteArray in = %CONVERTTOCPP[QByteArray](%in);
-%out = %OUTTYPE(in);
-// @snippet conversion-qbytearray
-
-// @snippet conversion-pyfloat
-double in = %CONVERTTOCPP[double](%in);
-%out = %OUTTYPE(in);
-// @snippet conversion-pyfloat
-
-// @snippet conversion-sbkobject
-// a class supported by QVariant?
-int typeCode;
-const char *typeName = QVariant_resolveMetaType(Py_TYPE(%in), &typeCode);
-if (!typeCode || !typeName) {
- // If the type was not encountered, return a default PyObjectWrapper
- %out = QVariant::fromValue(PySide::PyObjectWrapper(%in));
-}
-else {
- QVariant var(typeCode, nullptr);
- Shiboken::Conversions::SpecificConverter converter(typeName);
- converter.toCpp(pyIn, var.data());
- %out = var;
-}
-// @snippet conversion-sbkobject
-
-// @snippet conversion-pydict
-QVariant ret = QVariant_convertToVariantMap(%in);
-%out = ret.isValid() ? ret : QVariant::fromValue(PySide::PyObjectWrapper(%in));
-// @snippet conversion-pydict
-
-// @snippet conversion-pylist
-QVariant ret = QVariant_convertToVariantList(%in);
-%out = ret.isValid() ? ret : QVariant::fromValue(PySide::PyObjectWrapper(%in));
-// @snippet conversion-pylist
-
-// @snippet conversion-pyobject
-// Is a shiboken type not known by Qt
-%out = QVariant::fromValue(PySide::PyObjectWrapper(%in));
-// @snippet conversion-pyobject
-
-// @snippet conversion-qvariant-invalid
-%out = QVariant::Invalid;
-// @snippet conversion-qvariant-invalid
-
-// @snippet conversion-qvariant-pytypeobject
-const char *typeName;
-if (Shiboken::String::checkType(reinterpret_cast<PyTypeObject *>(%in)))
- typeName = "QString";
-else if (%in == reinterpret_cast<PyObject *>(&PyFloat_Type))
- typeName = "double"; // float is a UserType in QVariant.
-else if (%in == reinterpret_cast<PyObject *>(&PyLong_Type))
- typeName = "int"; // long is a UserType in QVariant.
-else if (Py_TYPE(%in) == SbkObjectType_TypeF())
- typeName = Shiboken::ObjectType::getOriginalName((SbkObjectType *)%in);
-else
- typeName = reinterpret_cast<PyTypeObject *>(%in)->tp_name;
-%out = QVariant::nameToType(typeName);
-// @snippet conversion-qvariant-pytypeobject
-
-// @snippet conversion-qvariant-pystring
-%out = QVariant::nameToType(Shiboken::String::toCString(%in));
-// @snippet conversion-qvariant-pystring
-
-// @snippet conversion-qvariant-pydict
-%out = QVariant::nameToType("QVariantMap");
-// @snippet conversion-qvariant-pydict
-
-// @snippet conversion-qvariant-pysequence
-%out = QVariantType_isStringList(%in) ? QVariant::StringList : QVariant::List;
-// @snippet conversion-qvariant-pysequence
-
-// @snippet conversion-qjsonobject-pydict
-QVariant dict = QVariant_convertToVariantMap(%in);
-QJsonValue val = QJsonValue::fromVariant(dict);
-%out = val.toObject();
-// @snippet conversion-qjsonobject-pydict
-
-// @snippet conversion-qpair-pysequence
-%out.first = %CONVERTTOCPP[%OUTTYPE_0](PySequence_Fast_GET_ITEM(%in, 0));
-%out.second = %CONVERTTOCPP[%OUTTYPE_1](PySequence_Fast_GET_ITEM(%in, 1));
-// @snippet conversion-qpair-pysequence
-
-// @snippet conversion-qdate-pydate
-int day = PyDateTime_GET_DAY(%in);
-int month = PyDateTime_GET_MONTH(%in);
-int year = PyDateTime_GET_YEAR(%in);
-%out = %OUTTYPE(year, month, day);
-// @snippet conversion-qdate-pydate
-
-// @snippet conversion-qdatetime-pydatetime
-int day = PyDateTime_GET_DAY(%in);
-int month = PyDateTime_GET_MONTH(%in);
-int year = PyDateTime_GET_YEAR(%in);
-int hour = PyDateTime_DATE_GET_HOUR(%in);
-int min = PyDateTime_DATE_GET_MINUTE(%in);
-int sec = PyDateTime_DATE_GET_SECOND(%in);
-int usec = PyDateTime_DATE_GET_MICROSECOND(%in);
-%out = %OUTTYPE(QDate(year, month, day), QTime(hour, min, sec, usec/1000));
-// @snippet conversion-qdatetime-pydatetime
-
-// @snippet conversion-qtime-pytime
-int hour = PyDateTime_TIME_GET_HOUR(%in);
-int min = PyDateTime_TIME_GET_MINUTE(%in);
-int sec = PyDateTime_TIME_GET_SECOND(%in);
-int usec = PyDateTime_TIME_GET_MICROSECOND(%in);
-%out = %OUTTYPE(hour, min, sec, usec/1000);
-// @snippet conversion-qtime-pytime
-
-// @snippet conversion-qbytearray-pybytes
-#ifdef IS_PY3K
-%out = %OUTTYPE(PyBytes_AS_STRING(%in), PyBytes_GET_SIZE(%in));
-#else
-%out = %OUTTYPE(Shiboken::String::toCString(%in), Shiboken::String::len(%in));
-#endif
-// @snippet conversion-qbytearray-pybytes
-
-// @snippet conversion-qbytearray-pybytearray
-%out = %OUTTYPE(PyByteArray_AsString(%in), PyByteArray_Size(%in));
-// @snippet conversion-qbytearray-pybytearray
-
-// @snippet conversion-qbytearray-pystring
-%out = %OUTTYPE(Shiboken::String::toCString(%in), Shiboken::String::len(%in));
-// @snippet conversion-qbytearray-pystring
-
-/*********************************************************************
- * NATIVE TO TARGET CONVERSIONS
- ********************************************************************/
-
-// @snippet return-pybool
-return PyBool_FromLong((bool)%in);
-// @snippet return-pybool
-
-// @snippet return-pylong
-return PyLong_FromLong(%in);
-// @snippet return-pylong
-
-// @snippet return-pylong-unsigned
-return PyLong_FromUnsignedLong(%in);
-// @snippet return-pylong-unsigned
-
-// @snippet return-pyunicode
-QByteArray ba = %in.toUtf8();
-return PyUnicode_FromStringAndSize(ba.constData(), ba.size());
-// @snippet return-pyunicode
-
-// @snippet return-pyunicode-qstringref
- const int N = %in.length();
- wchar_t *str = new wchar_t[N];
- %in.toString().toWCharArray(str);
- PyObject *%out = PyUnicode_FromWideChar(str, N);
- delete[] str;
- return %out;
-// @snippet return-pyunicode-qstringref
-
-// @snippet return-pyunicode-qchar
-wchar_t c = (wchar_t)%in.unicode();
-return PyUnicode_FromWideChar(&c, 1);
-// @snippet return-pyunicode-qchar
-
-// @snippet return-qvariant
-if (!%in.isValid())
- Py_RETURN_NONE;
-
-if (qstrcmp(%in.typeName(), "QVariantList") == 0) {
- QList<QVariant> var = %in.value<QVariantList>();
- return %CONVERTTOPYTHON[QList<QVariant>](var);
-}
-
-if (qstrcmp(%in.typeName(), "QStringList") == 0) {
- QStringList var = %in.value<QStringList>();
- return %CONVERTTOPYTHON[QList<QString>](var);
-}
-
-if (qstrcmp(%in.typeName(), "QVariantMap") == 0) {
- QMap<QString, QVariant> var = %in.value<QVariantMap>();
- return %CONVERTTOPYTHON[QMap<QString, QVariant>](var);
-}
-
-Shiboken::Conversions::SpecificConverter converter(cppInRef.typeName());
-if (converter) {
- void *ptr = cppInRef.data();
- return converter.toPython(ptr);
-}
-PyErr_Format(PyExc_RuntimeError, "Can't find converter for '%s'.", %in.typeName());
-return 0;
-// @snippet return-qvariant
-
-// @snippet return-qvariant-type
-const char *typeName = QVariant::typeToName(%in);
-PyObject *%out;
-PyTypeObject *pyType = nullptr;
-if (typeName)
- pyType = Shiboken::Conversions::getPythonTypeObject(typeName);
-%out = pyType ? (reinterpret_cast<PyObject *>(pyType)) : Py_None;
-Py_INCREF(%out);
-return %out;
-// @snippet return-qvariant-type
-
-// @snippet return-qjsonobject
-// The QVariantMap returned by QJsonObject seems to cause a segfault, so
-// using QJsonObject.toVariantMap() won't work.
-// Wrapping it in a QJsonValue first allows it to work
-QJsonValue val(%in);
-QVariant ret = val.toVariant();
-
-return %CONVERTTOPYTHON[QVariant](ret);
-// @snippet return-qjsonobject
-
-// @snippet return-qpair
-PyObject *%out = PyTuple_New(2);
-PyTuple_SET_ITEM(%out, 0, %CONVERTTOPYTHON[%INTYPE_0](%in.first));
-PyTuple_SET_ITEM(%out, 1, %CONVERTTOPYTHON[%INTYPE_1](%in.second));
-return %out;
-// @snippet return-qpair
diff --git a/sources/pyside2/PySide2/glue/qtdatavisualization.cpp b/sources/pyside2/PySide2/glue/qtdatavisualization.cpp
deleted file mode 100644
index 119d79a40..000000000
--- a/sources/pyside2/PySide2/glue/qtdatavisualization.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet releaseownership
-Shiboken::Object::releaseOwnership(%PYARG_1);
-// @snippet releaseownership
diff --git a/sources/pyside2/PySide2/glue/qtgui.cpp b/sources/pyside2/PySide2/glue/qtgui.cpp
deleted file mode 100644
index 5be8cc287..000000000
--- a/sources/pyside2/PySide2/glue/qtgui.cpp
+++ /dev/null
@@ -1,549 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*********************************************************************
- * INJECT CODE
- ********************************************************************/
-
-// @snippet qtransform-quadtoquad
-QTransform _result;
-if (QTransform::quadToQuad(%1, %2, _result)) {
- %PYARG_0 = %CONVERTTOPYTHON[QTransform](_result);
-} else {
- Py_INCREF(Py_None);
- %PYARG_0 = Py_None;
-}
-// @snippet qtransform-quadtoquad
-
-// @snippet qtransform-quadtosquare
-QTransform _result;
-if (QTransform::quadToSquare(%1, _result)) {
- %PYARG_0 = %CONVERTTOPYTHON[QTransform](_result);
-} else {
- Py_INCREF(Py_None);
- %PYARG_0 = Py_None;
-}
-// @snippet qtransform-quadtosquare
-
-// @snippet qtransform-squaretoquad
-QTransform _result;
-if (QTransform::squareToQuad(%1, _result)) {
- %PYARG_0 = %CONVERTTOPYTHON[QTransform](_result);
-} else {
- Py_INCREF(Py_None);
- %PYARG_0 = Py_None;
-}
-// @snippet qtransform-squaretoquad
-
-// @snippet qbitmap-fromdata
-uchar *buffer = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_2));
-QBitmap %0 = QBitmap::fromData(%1, buffer, %3);
-%PYARG_0 = %CONVERTTOPYTHON[QBitmap](%0);
-// @snippet qbitmap-fromdata
-
-// @snippet qtextline-cursortox
-%BEGIN_ALLOW_THREADS
-%RETURN_TYPE %0 = %CPPSELF->::%TYPE::%FUNCTION_NAME(&%1, %2);
-%END_ALLOW_THREADS
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](%0));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](%1));
-// @snippet qtextline-cursortox
-
-// @snippet qkeysequence-getitem
-if (_i < 0 || _i >= %CPPSELF.count()) {
- PyErr_SetString(PyExc_IndexError, "index out of bounds");
- return 0;
-}
-int item = (*%CPPSELF)[_i];
-return %CONVERTTOPYTHON[int](item);
-// @snippet qkeysequence-getitem
-
-// @snippet qpicture-data
-%PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.data(), %CPPSELF.size());
-// @snippet qpicture-data
-
-// @snippet qtextblock-setuserdata
-const QTextDocument *doc = %CPPSELF.document();
-if (doc) {
- Shiboken::AutoDecRef pyDocument(%CONVERTTOPYTHON[QTextDocument *](doc));
- Shiboken::Object::setParent(pyDocument, %PYARG_1);
-}
-// @snippet qtextblock-setuserdata
-
-// @snippet qtextblock-userdata
-const QTextDocument *doc = %CPPSELF.document();
-if (doc) {
- Shiboken::AutoDecRef pyDocument(%CONVERTTOPYTHON[QTextDocument *](doc));
- Shiboken::Object::setParent(pyDocument, %PYARG_0);
-}
-// @snippet qtextblock-userdata
-
-// @snippet qopenglshaderprogram_setuniformvalue_float
-float value = %2;
-%CPPSELF.setUniformValue(%1, value);
-// @snippet qopenglshaderprogram_setuniformvalue_float
-
-// @snippet qopenglshaderprogram_setuniformvalue_int
-int value = %2;
-%CPPSELF.setUniformValue(%1, value);
-// @snippet qopenglshaderprogram_setuniformvalue_int
-
-// @snippet qpolygon-reduce
-PyObject *points = PyList_New(%CPPSELF.count());
-for (int i = 0, i_max = %CPPSELF.count(); i < i_max; ++i){
- int x, y;
- %CPPSELF.point(i, &x, &y);
- QPoint pt = QPoint(x, y);
- PyList_SET_ITEM(points, i, %CONVERTTOPYTHON[QPoint](pt));
-}
-// @snippet qpolygon-reduce
-
-// @snippet qpolygon-operatorlowerlower
-// %FUNCTION_NAME()
-*%CPPSELF << %1;
-%PYARG_0 = %CONVERTTOPYTHON[QPolygon *](%CPPSELF);
-// @snippet qpolygon-operatorlowerlower
-
-// @snippet qpixmap
-%0 = new %TYPE(QPixmap::fromImage(%1));
-// @snippet qpixmap
-
-// @snippet qimage-constbits
-%PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(), %CPPSELF.byteCount());
-// @snippet qimage-constbits
-
-// @snippet qimage-bits
-// byteCount() is only available on Qt4.7, so we use bytesPerLine * height
-%PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(), %CPPSELF.bytesPerLine() * %CPPSELF.height(), Shiboken::Buffer::ReadWrite);
-// @snippet qimage-bits
-
-// @snippet qimage-constscanline
-%PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1), %CPPSELF.bytesPerLine());
-// @snippet qimage-constscanline
-
-// @snippet qimage-scanline
-%PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1), %CPPSELF.bytesPerLine(), Shiboken::Buffer::ReadWrite);
-// @snippet qimage-scanline
-
-// @snippet qcolor-setstate
-Shiboken::AutoDecRef func(PyObject_GetAttr(%PYSELF, PyTuple_GET_ITEM(%1, 0)));
-PyObject *args = PyTuple_GET_ITEM(%1, 1);
-%PYARG_0 = PyObject_Call(func, args, NULL);
-// @snippet qcolor-setstate
-
-// @snippet qcolor-reduce
-switch (%CPPSELF.spec()) {
- case QColor::Rgb:
- {
- qreal r, g, b, a;
- %CPPSELF.getRgbF(&r, &g, &b, &a);
- %PYARG_0 = Py_BuildValue("(ON(s(ffff)))", Py_TYPE(%PYSELF), PyTuple_New(0),
- "setRgbF", float(r), float(g), float(b), float(a));
- break;
- }
- case QColor::Hsv:
- {
- qreal h, s, v, a;
- %CPPSELF.getHsvF(&h, &s, &v, &a);
- %PYARG_0 = Py_BuildValue("(ON(s(ffff)))", Py_TYPE(%PYSELF), PyTuple_New(0),
- "setHsvF", float(h), float(s), float(v), float(a));
- break;
- }
- case QColor::Cmyk:
- {
- qreal c, m, y, k, a;
- %CPPSELF.getCmykF(&c, &m, &y, &k, &a);
- %PYARG_0 = Py_BuildValue("(ON(s(fffff)))", Py_TYPE(%PYSELF), PyTuple_New(0),
- "setCmykF", float(c), float(m), float(y), float(k), float(a));
- break;
- }
- case QColor::Hsl:
- {
- qreal h, s, l, a;
- %CPPSELF.getHslF(&h, &s, &l, &a);
- %PYARG_0 = Py_BuildValue("(ON(s(ffff)))", Py_TYPE(%PYSELF), PyTuple_New(0),
- "setHslF", float(h), float(s), float(l), float(a));
- break;
- }
- default:
- {
- %PYARG_0 = Py_BuildValue("(N(O))", PyObject_Type(%PYSELF), Py_None);
- }
-}
-// @snippet qcolor-reduce
-
-// @snippet qcolor-totuple
-switch (%CPPSELF.spec()) {
- case QColor::Rgb:
- {
- int r, g, b, a;
- %CPPSELF.getRgb(&r, &g, &b, &a);
- %PYARG_0 = Py_BuildValue("iiii", r, g, b, a);
- break;
- }
- case QColor::Hsv:
- {
- int h, s, v, a;
- %CPPSELF.getHsv(&h, &s, &v, &a);
- %PYARG_0 = Py_BuildValue("iiii", h, s, v, a);
- break;
- }
- case QColor::Cmyk:
- {
- int c, m, y, k, a;
- %CPPSELF.getCmyk(&c, &m, &y, &k, &a);
- %PYARG_0 = Py_BuildValue("iiiii", c, m, y, k, a);
- break;
- }
- case QColor::Hsl:
- {
- int h, s, l, a;
- %CPPSELF.getHsl(&h, &s, &l, &a);
- %PYARG_0 = Py_BuildValue("iiii", h, s, l, a);
- break;
- }
- default:
- {
- %PYARG_0 = 0;
- }
-}
-// @snippet qcolor-totuple
-
-// @snippet qcolor
-if (%1.type() == QVariant::Color)
- %0 = new %TYPE(%1.value<QColor>());
-else
- PyErr_SetString(PyExc_TypeError, "QVariant must be holding a QColor");
-// @snippet qcolor
-
-// @snippet qfontmetricsf-boundingrect
-int *array = nullptr;
-bool errorOccurred = false;
-
-if (numArgs == 5) {
- array = Shiboken::sequenceToIntArray(%PYARG_5, true);
- if (PyErr_Occurred()) {
- delete [] array;
- errorOccurred = true;
- }
-}
-
-if (!errorOccurred) {
- %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, array);
-
- delete [] array;
-
- %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval);
-}
-// @snippet qfontmetricsf-boundingrect
-
-// @snippet qfontmetricsf-size
-int *array = nullptr;
-bool errorOccurred = false;
-
-if (numArgs == 4) {
- array = Shiboken::sequenceToIntArray(%PYARG_4, true);
- if (PyErr_Occurred()) {
- delete [] array;
- errorOccurred = true;
- }
-}
-
-if (!errorOccurred) {
- %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, array);
-
- delete [] array;
-
- %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval);
-}
-// @snippet qfontmetricsf-size
-
-// @snippet qfontmetrics-boundingrect-1
-int *array = nullptr;
-bool errorOccurred = false;
-
-if (numArgs == 8) {
- array = Shiboken::sequenceToIntArray(%PYARG_8, true);
- if (PyErr_Occurred()) {
- delete [] array;
- errorOccurred = true;
- }
-}
-
-if (!errorOccurred) {
- %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, %5, %6, %7, array);
-
- delete [] array;
-
- %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval);
-}
-// @snippet qfontmetrics-boundingrect-1
-
-// @snippet qfontmetrics-boundingrect-2
-int *array = nullptr;
-bool errorOccurred = false;
-
-if (numArgs == 5) {
- array = Shiboken::sequenceToIntArray(%PYARG_5, true);
- if (PyErr_Occurred()) {
- delete [] array;
- errorOccurred = true;
- }
-}
-
-if (!errorOccurred) {
- %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, array);
-
- delete [] array;
-
- %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval);
-}
-// @snippet qfontmetrics-boundingrect-2
-
-// @snippet qfontmetrics-size
-int *array = nullptr;
-bool errorOccurred = false;
-
-if (numArgs == 4) {
- array = Shiboken::sequenceToIntArray(%PYARG_4, true);
- if (PyErr_Occurred()) {
- delete [] array;
- errorOccurred = true;
- }
-}
-
-if (!errorOccurred) {
- %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, array);
-
- delete [] array;
-
- %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval);
-}
-// @snippet qfontmetrics-size
-
-// @snippet qpixmapcache-find
-QPixmap p;
-if (%CPPSELF.%FUNCTION_NAME(%1, &p)) {
- %PYARG_0 = %CONVERTTOPYTHON[QPixmap](p);
-} else {
- %PYARG_0 = Py_None;
- Py_INCREF(%PYARG_0);
-}
-// @snippet qpixmapcache-find
-
-// @snippet qstandarditem-setchild-1
-// Clear parent from the old child
-QStandardItem *_i = %CPPSELF->child(%1, %2);
-if (_i) {
- PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem *](_i);
- Shiboken::Object::setParent(nullptr, _pyI);
-}
-// @snippet qstandarditem-setchild-1
-
-// @snippet qstandarditem-setchild-2
-// Clear parent from the old child
-QStandardItem *_i = %CPPSELF->child(%1);
-if (_i) {
- PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem *](_i);
- Shiboken::Object::setParent(nullptr, _pyI);
-}
-// @snippet qstandarditem-setchild-2
-
-// @snippet qkeyevent-operatornotequal
-bool ret = !(&%CPPSELF == %1);
-%PYARG_0 = %CONVERTTOPYTHON[bool](ret);
-// @snippet qkeyevent-operatornotequal
-
-// @snippet qstandarditemmodel-setitem-1
-// Clear parent from the old child
-QStandardItem *_i = %CPPSELF->item(%1, %2);
-if (_i) {
- PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem *](_i);
- Shiboken::Object::setParent(nullptr, _pyI);
-}
-// @snippet qstandarditemmodel-setitem-1
-
-// @snippet qstandarditemmodel-setitem-2
-// Clear parent from the old child
-QStandardItem *_i = %CPPSELF->item(%1);
-if (_i) {
- PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem *](_i);
- Shiboken::Object::setParent(nullptr, _pyI);
-}
-// @snippet qstandarditemmodel-setitem-2
-
-// @snippet qstandarditemmodel-setverticalheaderitem
-// Clear parent from the old child
-QStandardItem *_i = %CPPSELF->verticalHeaderItem(%1);
-if (_i) {
- PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem *](_i);
- Shiboken::Object::setParent(nullptr, _pyI);
-}
-// @snippet qstandarditemmodel-setverticalheaderitem
-
-// @snippet qstandarditemmodel-clear
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-SbkObject *pyRoot = bm.retrieveWrapper(%CPPSELF.invisibleRootItem());
-if (pyRoot) {
- Shiboken::Object::destroy(pyRoot, %CPPSELF.invisibleRootItem());
-}
-
-for (int r=0, r_max = %CPPSELF.rowCount(); r < r_max; r++) {
- QList<QStandardItem *> ri = %CPPSELF.takeRow(0);
-
- PyObject *pyResult = %CONVERTTOPYTHON[QList<QStandardItem * >](ri);
- Shiboken::Object::setParent(Py_None, pyResult);
- Py_XDECREF(pyResult);
-}
-// @snippet qstandarditemmodel-clear
-
-// @snippet qclipboard-text
-%BEGIN_ALLOW_THREADS
-%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2);
-%END_ALLOW_THREADS
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](%1));
-// @snippet qclipboard-text
-
-// @snippet qpainter-drawpolygon
-%BEGIN_ALLOW_THREADS
-%CPPSELF.%FUNCTION_NAME(%1.data(), %1.size(), %2);
-%END_ALLOW_THREADS
-// @snippet qpainter-drawpolygon
-
-// @snippet qmatrix-map-point
-QPoint p(%CPPSELF.%FUNCTION_NAME(%1));
-%PYARG_0 = %CONVERTTOPYTHON[QPoint](p);
-// @snippet qmatrix-map-point
-
-// @snippet qmatrix4x4
-if (PySequence_Size(%PYARG_1) == 16) {
- float values[16];
- for (int i=0; i < 16; ++i) {
- PyObject *pv = PySequence_Fast_GET_ITEM(%PYARG_1, i);
- values[i] = PyFloat_AsDouble(pv);
- }
-
- %0 = new %TYPE(values[0], values[1], values[2], values[3],
- values[4], values[5], values[6], values[7],
- values[8], values[9], values[10], values[11],
- values[12], values[13], values[14], values[15]);
-}
-// @snippet qmatrix4x4
-
-// @snippet qmatrix4x4-copydatato
-float values[16];
-%CPPSELF.%FUNCTION_NAME(values);
-%PYARG_0 = PyTuple_New(16);
-for (int i = 0; i < 16; ++i) {
- PyObject *v = PyFloat_FromDouble(values[i]);
- PyTuple_SET_ITEM(%PYARG_0, i, v);
-}
-// @snippet qmatrix4x4-copydatato
-
-// @snippet qmatrix4x4-mgetitem
-if (PySequence_Check(_key)) {
- Shiboken::AutoDecRef key(PySequence_Fast(_key, "Invalid matrix index."));
- if (PySequence_Fast_GET_SIZE(key.object()) == 2) {
- PyObject *posx = PySequence_Fast_GET_ITEM(key.object(), 0);
- PyObject *posy = PySequence_Fast_GET_ITEM(key.object(), 1);
- Py_ssize_t x = PyInt_AsSsize_t(posx);
- Py_ssize_t y = PyInt_AsSsize_t(posy);
- float ret = (*%CPPSELF)(x,y);
- return %CONVERTTOPYTHON[float](ret);
- }
-}
-PyErr_SetString(PyExc_IndexError, "Invalid matrix index.");
-return 0;
-// @snippet qmatrix4x4-mgetitem
-
-// @snippet qguiapplication-init
-static void QGuiApplicationConstructor(PyObject *self, PyObject *pyargv, QGuiApplicationWrapper **cptr)
-{
- static int argc;
- static char **argv;
- PyObject *stringlist = PyTuple_GET_ITEM(pyargv, 0);
- if (Shiboken::listToArgcArgv(stringlist, &argc, &argv, "PySideApp")) {
- *cptr = new QGuiApplicationWrapper(argc, argv, 0);
- Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(self));
- PySide::registerCleanupFunction(&PySide::destroyQCoreApplication);
- }
-}
-// @snippet qguiapplication-init
-
-// @snippet qguiapplication-1
-QGuiApplicationConstructor(%PYSELF, args, &%0);
-// @snippet qguiapplication-1
-
-// @snippet qguiapplication-2
-PyObject *empty = PyTuple_New(2);
-if (!PyTuple_SetItem(empty, 0, PyList_New(0))) {
- QGuiApplicationConstructor(%PYSELF, empty, &%0);
-}
-// @snippet qguiapplication-2
-
-// @snippet qscreen-grabWindow
-WId id = %1;
-%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(id, %2, %3, %4, %5);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval);
-// @snippet qscreen-grabWindow
-
-// @snippet qwindow-fromWinId
-WId id = %1;
-%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(id);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval);
-// @snippet qwindow-fromWinId
-
-/*********************************************************************
- * CONVERSIONS
- ********************************************************************/
-
-// @snippet conversion-pylong
-%out = reinterpret_cast<%OUTTYPE>(PyLong_AsVoidPtr(%in));
-// @snippet conversion-pylong
-
-/*********************************************************************
- * NATIVE TO TARGET CONVERSIONS
- ********************************************************************/
-
-// @snippet return-pylong-voidptr
-return PyLong_FromVoidPtr(reinterpret_cast<void *>(%in));
-// @snippet return-pylong-voidptr
diff --git a/sources/pyside2/PySide2/glue/qtmultimedia.cpp b/sources/pyside2/PySide2/glue/qtmultimedia.cpp
deleted file mode 100644
index 5a3f3a5e7..000000000
--- a/sources/pyside2/PySide2/glue/qtmultimedia.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet upcast
-%BEGIN_ALLOW_THREADS
-QObject * upcastedArg = %CONVERTTOCPP[QObject *](%PYARG_1);
-//XXX /|\ omitting this space crashes shiboken!
-%CPPSELF.%FUNCTION_NAME(reinterpret_cast< %ARG1_TYPE >(upcastedArg));
-%END_ALLOW_THREADS
-// @snippet upcast
diff --git a/sources/pyside2/PySide2/glue/qtnetwork.cpp b/sources/pyside2/PySide2/glue/qtnetwork.cpp
deleted file mode 100644
index cdb330c40..000000000
--- a/sources/pyside2/PySide2/glue/qtnetwork.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qudpsocket-readdatagram
-Shiboken::AutoArrayPointer<char> data(%ARGUMENT_NAMES);
-QHostAddress ha;
-quint16 port;
-%BEGIN_ALLOW_THREADS
-%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(data, %ARGUMENT_NAMES, &ha, &port);
-%END_ALLOW_THREADS
-QByteArray ba(data, retval);
-%PYARG_0 = PyTuple_New(3);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[QByteArray](ba));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QHostAddress](ha));
-PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[quint16](port));
-// @snippet qudpsocket-readdatagram
-
-// @snippet qipv6address-len
-return 16;
-// @snippet qipv6address-len
-
-// @snippet qipv6address-getitem
-if (_i >= 16) {
- PyErr_SetString(PyExc_IndexError, "index out of bounds");
- return 0;
-}
-if (_i < 0)
- _i = 16 - qAbs(_i);
-
-uint item = %CPPSELF.c[_i];
-return %CONVERTTOPYTHON[uint](item);
-// @snippet qipv6address-getitem
-
-// @snippet qipv6address-setitem
-if (_i >= 16) {
- PyErr_SetString(PyExc_IndexError, "index out of bounds");
- return -1;
-}
-if (_i < 0)
- _i = 16 - qAbs(_i);
-quint8 item = %CONVERTTOCPP[quint8](_value);
-%CPPSELF.c[_i] = item;
-return 0;
-// @snippet qipv6address-setitem
diff --git a/sources/pyside2/PySide2/glue/qtopengl.cpp b/sources/pyside2/PySide2/glue/qtopengl.cpp
deleted file mode 100644
index 25b6ee096..000000000
--- a/sources/pyside2/PySide2/glue/qtopengl.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qglbuffer-allocate
-int size = (%2 < 0) ? %1.size() : %2;
-%CPPSELF.allocate(static_cast<const void *>(%1.data()), size);
-// @snippet qglbuffer-allocate
-
-// @snippet qglbuffer-read
-char *data = new char[%3];
-bool result = %CPPSELF.read(%1, data, %3);
-QByteArray ret;
-if (result)
- ret.append(data, %3);
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[bool](result));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QByteArray](ret));
-delete[] data;
-// @snippet qglbuffer-read
-
-// @snippet qglbuffer-write
-int size = (%3 < 0) ? %2.size() : %3;
-%CPPSELF.write(%1, static_cast<const void *>(%2.data()), size);
-// @snippet qglbuffer-write
-
-// @snippet qglbuffer-map
-Py_ssize_t dataSize = %CPPSELF.size();
-void *data = %CPPSELF.map(%1);
-
-if (!data) {
- Py_INCREF(Py_None);
- %PYARG_0 = Py_None;
-} else if (%1 == QGLBuffer::ReadOnly) {
- %PYARG_0 = Shiboken::Buffer::newObject(data, dataSize, Shiboken::Buffer::ReadOnly);
-} else {
- %PYARG_0 = Shiboken::Buffer::newObject(data, dataSize, Shiboken::Buffer::ReadWrite);
-}
-// @snippet qglbuffer-map
diff --git a/sources/pyside2/PySide2/glue/qtprintsupport.cpp b/sources/pyside2/PySide2/glue/qtprintsupport.cpp
deleted file mode 100644
index 300a498c0..000000000
--- a/sources/pyside2/PySide2/glue/qtprintsupport.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet setpagesize
-bool out = %CPPSELF.setPageSize(%1);
-%PYARG_0 = %CONVERTTOPYTHON[bool](out);
-// @snippet setpagesize
diff --git a/sources/pyside2/PySide2/glue/qtqml.cpp b/sources/pyside2/PySide2/glue/qtqml.cpp
deleted file mode 100644
index 1913204c3..000000000
--- a/sources/pyside2/PySide2/glue/qtqml.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qmlregistertype
-int %0 = PySide::qmlRegisterType(%ARGUMENT_NAMES);
-%PYARG_0 = %CONVERTTOPYTHON[int](%0);
-// @snippet qmlregistertype
-
-// @snippet init
-PySide::initQmlSupport(module);
-// @snippet init
-
-// @snippet qjsengine-toscriptvalue
-%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1);
-return %CONVERTTOPYTHON[%RETURN_TYPE](retval);
-// @snippet qjsengine-toscriptvalue
diff --git a/sources/pyside2/PySide2/glue/qtquick.cpp b/sources/pyside2/PySide2/glue/qtquick.cpp
deleted file mode 100644
index b7c31aff3..000000000
--- a/sources/pyside2/PySide2/glue/qtquick.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qtquick
-PySide::initQuickSupport(module);
-// @snippet qtquick
diff --git a/sources/pyside2/PySide2/glue/qtscript.cpp b/sources/pyside2/PySide2/glue/qtscript.cpp
deleted file mode 100644
index cf168d6bd..000000000
--- a/sources/pyside2/PySide2/glue/qtscript.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qscriptvalue-repr
-if (%CPPSELF.isVariant() || %CPPSELF.isString()) {
- QString format = QString::asprintf("%s(\"%s\")",
- Py_TYPE(%PYSELF)->tp_name,
- qPrintable(%CPPSELF.toString()));
- %PYARG_0 = Shiboken::String::fromCString(qPrintable(format));
- } else {
- %PYARG_0 = Shiboken::String::fromCString(Py_TYPE(%PYSELF)->tp_name);
-}
-// @snippet qscriptvalue-repr
-
-// @snippet qscriptvalue-mgetitem
-Shiboken::AutoDecRef key(PyObject_Str(_key));
-QVariant res = %CPPSELF.property(Shiboken::String::toCString(key.object())).toVariant();
-if (res.isValid()) {
- return %CONVERTTOPYTHON[QVariant](res);
-} else {
- PyObject *errorType = PyInt_Check(_key) ? PyExc_IndexError : PyExc_KeyError;
- PyErr_SetString(errorType, "Key not found.");
- return 0;
-}
-// @snippet qscriptvalue-mgetitem
-
-// @snippet qscriptvalueiterator-next
-if (%CPPSELF.hasNext()) {
- %CPPSELF.next();
- QString name = %CPPSELF.name();
- QVariant value = %CPPSELF.value().toVariant();
- %PYARG_0 = PyTuple_New(2);
- PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[QString](name));
- PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QVariant](value));
-} else {
- PyErr_SetNone(PyExc_StopIteration);
-}
-// @snippet qscriptvalueiterator-next
diff --git a/sources/pyside2/PySide2/glue/qtuitools.cpp b/sources/pyside2/PySide2/glue/qtuitools.cpp
deleted file mode 100644
index 552a9009c..000000000
--- a/sources/pyside2/PySide2/glue/qtuitools.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-// @snippet uitools-loadui
-/*
- * Based on code provided by:
- * Antonio Valentino <antonio.valentino at tiscali.it>
- * Frédéric <frederic.mantegazza at gbiloba.org>
- */
-
-#include <shiboken.h>
-#include <QUiLoader>
-#include <QFile>
-#include <QWidget>
-
-static void createChildrenNameAttributes(PyObject *root, QObject *object)
-{
- for (auto *child : object->children()) {
- const QByteArray name = child->objectName().toLocal8Bit();
-
- if (!name.isEmpty() && !name.startsWith("_") && !name.startsWith("qt_")) {
- if (!PyObject_HasAttrString(root, name.constData())) {
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QObject *](child));
- PyObject_SetAttrString(root, name.constData(), pyChild);
- }
- createChildrenNameAttributes(root, child);
- }
- createChildrenNameAttributes(root, child);
- }
-}
-
-static PyObject *QUiLoadedLoadUiFromDevice(QUiLoader *self, QIODevice *dev, QWidget *parent)
-{
- QWidget *wdg = self->load(dev, parent);
-
- if (wdg) {
- PyObject *pyWdg = %CONVERTTOPYTHON[QWidget *](wdg);
- createChildrenNameAttributes(pyWdg, wdg);
- if (parent) {
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](parent));
- Shiboken::Object::setParent(pyParent, pyWdg);
- }
- return pyWdg;
- }
-
- if (!PyErr_Occurred())
- PyErr_SetString(PyExc_RuntimeError, "Unable to open/read ui device");
- return nullptr;
-}
-
-static PyObject *QUiLoaderLoadUiFromFileName(QUiLoader *self, const QString &uiFile, QWidget *parent)
-{
- QFile fd(uiFile);
- return QUiLoadedLoadUiFromDevice(self, &fd, parent);
-}
-// @snippet uitools-loadui
-
-// @snippet quiloader
-Q_IMPORT_PLUGIN(PyCustomWidgets);
-// @snippet quiloader
-
-// @snippet quiloader-registercustomwidget
-registerCustomWidget(%PYARG_1);
-%CPPSELF.addPluginPath(""); // force reload widgets
-// @snippet quiloader-registercustomwidget
-
-// @snippet quiloader-load-1
-// Avoid calling the original function: %CPPSELF.%FUNCTION_NAME()
-%PYARG_0 = QUiLoadedLoadUiFromDevice(%CPPSELF, %1, %2);
-// @snippet quiloader-load-1
-
-// @snippet quiloader-load-2
-// Avoid calling the original function: %CPPSELF.%FUNCTION_NAME()
-%PYARG_0 = QUiLoaderLoadUiFromFileName(%CPPSELF, %1, %2);
-// @snippet quiloader-load-2
diff --git a/sources/pyside2/PySide2/glue/qtwebkitwidgets.cpp b/sources/pyside2/PySide2/glue/qtwebkitwidgets.cpp
deleted file mode 100644
index c0f182747..000000000
--- a/sources/pyside2/PySide2/glue/qtwebkitwidgets.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qwebview-page
-auto _pyReturn = reinterpret_cast<SbkObject *>(%PYARG_0);
-if (!Shiboken::Object::hasParentInfo(_pyReturn))
- Shiboken::Object::setParent(%PYSELF, %PYARG_0);
-// @snippet qwebview-page
-
-// @snippet qwebelementcollection-len
-return %CPPSELF.count();
-// @snippet qwebelementcollection-len
-
-// @snippet qwebelementcollection-getitem
-if (_i < 0 || _i >= %CPPSELF.count()) {
- PyErr_SetString(PyExc_IndexError, "index out of bounds");
- return 0;
-}
-QWebElement element = %CPPSELF.at(_i);
-return %CONVERTTOPYTHON[QWebElement](element);
-// @snippet qwebelementcollection-getitem
-
-// @snippet qwebpage-qt-metacall
-static int _signalIndex = -1;
-static QMetaMethod _m;
-
-if (_signalIndex == -1) {
- _signalIndex = QWebPage::staticMetaObject.indexOfSlot("shouldInterruptJavaScript()")
- _m = QWebPage::staticMetaObject.method(_signalIndex);
-}
-
-if (_signalIndex == id) {
- Shiboken::GilState gil;
- auto self = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(this));
-
- if (self) {
- Shiboken::AutoDecRef _pyMethod(PyObject_GetAttrString(self, "shouldInterruptJavaScript"));
- return PySide::SignalManager::callPythonMetaMethod(_m, args, _pyMethod, false);
- }
-}
-// @snippet qwebpage-qt-metacall
-
-// @snippet qwebframe-metadata
-%PYARG_0 = PyDict_New();
-const auto &keys = %0.keys();
-for (const auto &_key : keys) {
- Shiboken::AutoDecRef _pyValueList(PyList_New(0));
- for (auto it = %0.lowerBound(key), end = %0.upperBound(key); it ! = end; ++it) {
- Shiboken::AutoDecRef _pyValue(%CONVERTTOPYTHON[QString](it.value));
- PyList_Append(_pyValueList, _pyValue);
- }
-
- Shiboken::AutoDecRef _pyKey(%CONVERTTOPYTHON[QString](_key));
- PyDict_SetItem(%PYARG_0, _pyKey, _pyValueList);
-}
-// @snippet qwebframe-metadata
diff --git a/sources/pyside2/PySide2/glue/qtwidgets.cpp b/sources/pyside2/PySide2/glue/qtwidgets.cpp
deleted file mode 100644
index 0e0b025a6..000000000
--- a/sources/pyside2/PySide2/glue/qtwidgets.cpp
+++ /dev/null
@@ -1,661 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*********************************************************************
- * INJECT CODE
- ********************************************************************/
-
-// @snippet qtreewidgetitemiterator-next
-if (**%CPPSELF) {
- QTreeWidgetItemIterator *%0 = new QTreeWidgetItemIterator((*%CPPSELF)++);
- %PYARG_0 = %CONVERTTOPYTHON[QTreeWidgetItemIterator *](%0);
-}
-// @snippet qtreewidgetitemiterator-next
-
-// @snippet qtreewidgetitemiterator-value
-QTreeWidgetItem *%0 = %CPPSELF.operator *();
-%PYARG_0 = %CONVERTTOPYTHON[QTreeWidgetItem *](%0);
-Shiboken::Object::releaseOwnership(%PYARG_0);
-// @snippet qtreewidgetitemiterator-value
-
-// @snippet qgraphicsitem
-PyObject *userTypeConstant = PyInt_FromLong(QGraphicsItem::UserType);
-PyDict_SetItemString(reinterpret_cast<PyTypeObject *>(Sbk_QGraphicsItem_TypeF())->tp_dict, "UserType", userTypeConstant);
-// @snippet qgraphicsitem
-
-// @snippet qgraphicsitem-scene-return-parenting
-if (%0) {
- QObject *parent = %0->parent();
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QObject *](parent));
- Shiboken::Object::setParent(pyParent, %PYARG_0);
-}
-// @snippet qgraphicsitem-scene-return-parenting
-
-// @snippet qgraphicsitem-isblockedbymodalpanel
-QGraphicsItem *item_ = NULL;
-%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&item_);
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QGraphicsItem *](item_));
-// @snippet qgraphicsitem-isblockedbymodalpanel
-
-// @snippet qitemeditorfactory-registereditor
-Shiboken::Object::releaseOwnership(%PYARG_2);
-// @snippet qitemeditorfactory-registereditor
-
-// @snippet qitemeditorfactory-setdefaultfactory
-//this function is static we need keep ref to default value, to be able to call python virtual functions
-static PyObject *_defaultValue = nullptr;
-%CPPSELF.%FUNCTION_NAME(%1);
-Py_INCREF(%PYARG_1);
-if (_defaultValue)
- Py_DECREF(_defaultValue);
-
-_defaultValue = %PYARG_1;
-// @snippet qitemeditorfactory-setdefaultfactory
-
-// @snippet qformlayout-fix-args
-int _row;
-QFormLayout::ItemRole _role;
-%BEGIN_ALLOW_THREADS
-%CPPSELF->%FUNCTION_NAME(%ARGUMENT_NAMES, &_row, &_role);
-%END_ALLOW_THREADS
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](_row));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QFormLayout::ItemRole](_role));
-// @snippet qformlayout-fix-args
-
-// @snippet qfiledialog-return
-%BEGIN_ALLOW_THREADS
-%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, &%5, %6);
-%END_ALLOW_THREADS
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG5_TYPE](%5));
-// @snippet qfiledialog-return
-
-// @snippet qmenu-glue
-inline PyObject *addActionWithPyObject(QMenu *self, const QIcon &icon, const QString &text, PyObject *callback, const QKeySequence &shortcut)
-{
- QAction *act = self->addAction(text);
-
- if (!icon.isNull())
- act->setIcon(icon);
-
- if (!shortcut.isEmpty())
- act->setShortcut(shortcut);
-
- self->addAction(act);
-
- PyObject *pyAct = %CONVERTTOPYTHON[QAction *](act);
- Shiboken::AutoDecRef result(PyObject_CallMethod(pyAct,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- pyAct,
- SIGNAL(triggered()), callback));
- if (result.isNull()) {
- Py_DECREF(pyAct);
- return nullptr;
- }
-
- return pyAct;
-}
-// @snippet qmenu-glue
-
-// @snippet qmenu-addaction-1
-%PYARG_0 = addActionWithPyObject(%CPPSELF, QIcon(), %1, %2, %3);
-// @snippet qmenu-addaction-1
-
-// @snippet qmenu-addaction-2
-%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2, %3, %4);
-// @snippet qmenu-addaction-2
-
-// @snippet qmenu-addaction-3
-%CPPSELF.addAction(%1);
-// @snippet qmenu-addaction-3
-
-// @snippet qmenu-clear
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-const auto &actions = %CPPSELF.actions();
-for (auto *act : actions) {
- if (auto wrapper = bm.retrieveWrapper(act)) {
- auto pyObj = reinterpret_cast<PyObject *>(wrapper);
- Py_INCREF(pyObj);
- Shiboken::Object::setParent(NULL, pyObj);
- Shiboken::Object::invalidate(pyObj);
- Py_DECREF(pyObj);
- }
-}
-// @snippet qmenu-clear
-
-// @snippet qmenubar-glue
-inline PyObject *
-addActionWithPyObject(QMenuBar *self, const QString &text, PyObject *callback)
-{
- QAction *act = self->addAction(text);
-
- self->addAction(act);
-
- PyObject *pyAct = %CONVERTTOPYTHON[QAction *](act);
- PyObject *result = PyObject_CallMethod(pyAct,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- pyAct,
- SIGNAL(triggered(bool)), callback);
-
- if (result == nullptr || result == Py_False) {
- if (result)
- Py_DECREF(result);
- Py_DECREF(pyAct);
- return nullptr;
- }
-
- return pyAct;
-}
-// @snippet qmenubar-glue
-
-// @snippet qmenubar-clear
-const auto &actions = %CPPSELF.actions();
-for (auto *act : actions) {
- Shiboken::AutoDecRef pyAct(%CONVERTTOPYTHON[QAction *](act));
- Shiboken::Object::setParent(NULL, pyAct);
- Shiboken::Object::invalidate(pyAct);
-}
-// @snippet qmenubar-clear
-
-// @snippet qmenubar-addaction-1
-%PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2);
-// @snippet qmenubar-addaction-1
-
-// @snippet qmenubar-addaction-2
-%CPPSELF.addAction(%1);
-// @snippet qmenubar-addaction-2
-
-// @snippet qshortcut-1
-%0 = new %TYPE(%1, %2);
-// @snippet qshortcut-1
-
-// @snippet qshortcut-2
-Shiboken::AutoDecRef result(PyObject_CallMethod(%PYSELF,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- %PYSELF, SIGNAL(activated()), %PYARG_3)
-);
-if (!result.isNull())
- Shiboken::Object::setParent(%PYARG_2, %PYSELF);
-// @snippet qshortcut-2
-
-// @snippet qtoolbox-removeitem
-QWidget *_widget = %CPPSELF.widget(%1);
-if (_widget) {
- Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget *](_widget));
- Shiboken::Object::setParent(0, pyWidget);
-}
-// @snippet qtoolbox-removeitem
-
-// @snippet qlayout-help-functions
-void addLayoutOwnership(QLayout *layout, QLayoutItem *item);
-void removeLayoutOwnership(QLayout *layout, QWidget *widget);
-
-inline QByteArray retrieveObjectName(PyObject *obj)
-{
- Shiboken::AutoDecRef objName(PyObject_Str(obj));
- return Shiboken::String::toCString(objName);
-}
-
-inline void addLayoutOwnership(QLayout *layout, QWidget *widget)
-{
- //transfer ownership to parent widget
- QWidget *lw = layout->parentWidget();
- QWidget *pw = widget->parentWidget();
-
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget));
-
- //Transfer parent to layout widget
- if (pw && lw && pw != lw)
- Shiboken::Object::setParent(0, pyChild);
-
- if (!lw && !pw) {
- //keep the reference while the layout is orphan
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](layout));
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true);
- } else {
- if (!lw)
- lw = pw;
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](lw));
- Shiboken::Object::setParent(pyParent, pyChild);
- }
-}
-
-inline void addLayoutOwnership(QLayout *layout, QLayout *other)
-{
- //transfer all children widgets from other to layout parent widget
- QWidget *parent = layout->parentWidget();
- if (!parent) {
- //keep the reference while the layout is orphan
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayout *](other));
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyParent.object()),
- retrieveObjectName(pyParent).data(), pyChild, true);
- return;
- }
-
- for (int i=0, i_max=other->count(); i < i_max; i++) {
- QLayoutItem *item = other->itemAt(i);
- if (PyErr_Occurred() || !item)
- return;
- addLayoutOwnership(layout, item);
- }
-
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayout *](other));
- Shiboken::Object::setParent(pyParent, pyChild);
-}
-
-inline void addLayoutOwnership(QLayout *layout, QLayoutItem *item)
-{
- if (!item)
- return;
-
- if (QWidget *w = item->widget()) {
- addLayoutOwnership(layout, w);
- } else {
- if (QLayout *l = item->layout())
- addLayoutOwnership(layout, l);
- }
-
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayoutItem *](item));
- Shiboken::Object::setParent(pyParent, pyChild);
-}
-
-static void removeWidgetFromLayout(QLayout *layout, QWidget *widget)
-{
- QWidget *parent = widget->parentWidget();
-
- if (!parent) {
- //remove reference on layout
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](layout));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget));
- Shiboken::Object::removeReference(reinterpret_cast<SbkObject *>(pyParent.object()),
- retrieveObjectName(pyParent).data(), pyChild);
- } else {
- //give the ownership to parent
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](parent));
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](widget));
- Shiboken::Object::setParent(pyParent, pyChild);
- }
-}
-
-inline void removeLayoutOwnership(QLayout *layout, QLayoutItem *item)
-{
- if (QWidget *w = item->widget()) {
- removeWidgetFromLayout(layout, w);
- } else {
- QLayout *l = item->layout();
- if (l && item != l)
- removeLayoutOwnership(layout, l);
- }
-
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayoutItem *](item));
- Shiboken::Object::invalidate(pyChild);
- Shiboken::Object::setParent(0, pyChild);
-}
-
-inline void removeLayoutOwnership(QLayout *layout, QWidget *widget)
-{
- if (!widget)
- return;
-
- for (int i=0, i_max=layout->count(); i < i_max; i++) {
- QLayoutItem *item = layout->itemAt(i);
- if (PyErr_Occurred() || !item)
- return;
- if (item->widget() == widget)
- removeLayoutOwnership(layout, item);
- }
-}
-// @snippet qlayout-help-functions
-
-// @snippet qlayout-setalignment
-%CPPSELF.setAlignment(%1);
-// @snippet qlayout-setalignment
-
-// @snippet addownership-0
-addLayoutOwnership(%CPPSELF, %0);
-// @snippet addownership-0
-
-// @snippet addownership-1
-addLayoutOwnership(%CPPSELF, %1);
-// @snippet addownership-1
-
-// @snippet addownership-2
-addLayoutOwnership(%CPPSELF, %2);
-// @snippet addownership-2
-
-// @snippet removeownership-1
-removeLayoutOwnership(%CPPSELF, %1);
-// @snippet removeownership-1
-
-// @snippet qgridlayout-getitemposition
-int a, b, c, d;
-%CPPSELF.%FUNCTION_NAME(%1, &a, &b, &c, &d);
-%PYARG_0 = PyTuple_New(4);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[int](a));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[int](b));
-PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[int](c));
-PyTuple_SET_ITEM(%PYARG_0, 3, %CONVERTTOPYTHON[int](d));
-// @snippet qgridlayout-getitemposition
-
-// @snippet qgraphicsscene-destroyitemgroup
-QGraphicsItem *parentItem = %1->parentItem();
-Shiboken::AutoDecRef parent(%CONVERTTOPYTHON[QGraphicsItem *](parentItem));
-const auto &childItems = %1->childItems();
-for (auto *item : childItems)
- Shiboken::Object::setParent(parent, %CONVERTTOPYTHON[QGraphicsItem *](item));
-%BEGIN_ALLOW_THREADS
-%CPPSELF.%FUNCTION_NAME(%1);
-%END_ALLOW_THREADS
-// the arg was destroyed by Qt.
-Shiboken::Object::invalidate(%PYARG_1);
-// @snippet qgraphicsscene-destroyitemgroup
-
-// @snippet qgraphicsscene-addwidget
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, %2);
-%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0);
-Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYARG_0), "setWidget(QWidget*)1", %PYARG_1);
-// @snippet qgraphicsscene-addwidget
-
-// @snippet qgraphicsscene-clear
-const QList<QGraphicsItem *> items = %CPPSELF.items();
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-for (auto *item : items) {
- SbkObject *obj = bm.retrieveWrapper(item);
- if (obj) {
- if (reinterpret_cast<PyObject *>(obj)->ob_refcnt > 1) // If the refcnt is 1 the object will vannish anyway.
- Shiboken::Object::invalidate(obj);
- Shiboken::Object::removeParent(obj);
- }
-}
-%CPPSELF.%FUNCTION_NAME();
-// @snippet qgraphicsscene-clear
-
-// @snippet qtreewidget-clear
-QTreeWidgetItem *rootItem = %CPPSELF.invisibleRootItem();
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-for (int i = 0, i_count = rootItem->childCount(); i < i_count; ++i) {
- QTreeWidgetItem *item = rootItem->child(i);
- if (SbkObject *wrapper = bm.retrieveWrapper(item))
- Shiboken::Object::setParent(nullptr, reinterpret_cast<PyObject *>(wrapper));
-}
-// @snippet qtreewidget-clear
-
-// @snippet qtreewidgetitem
-// Only call the parent function if this return some value
-// the parent can be the TreeWidget
-if (%0)
- Shiboken::Object::setParent(%PYARG_0, %PYSELF);
-// @snippet qtreewidgetitem
-
-// @snippet qlistwidget-clear
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-for (int i = 0, count = %CPPSELF.count(); i < count; ++i) {
- QListWidgetItem *item = %CPPSELF.item(i);
- if (auto wrapper = bm.retrieveWrapper(item)) {
- auto pyObj = reinterpret_cast<PyObject *>(wrapper);
- Py_INCREF(pyObj);
- Shiboken::Object::setParent(NULL, pyObj);
- Shiboken::Object::invalidate(pyObj);
- Py_DECREF(pyObj);
- }
-}
-%CPPSELF.%FUNCTION_NAME();
-// @snippet qlistwidget-clear
-
-// @snippet qwidget-glue
-static QString retrieveObjectName(PyObject *obj)
-{
- Shiboken::AutoDecRef objName(PyObject_Str(obj));
- return QString(Shiboken::String::toCString(objName));
-}
-
-
-// Transfer objects ownership from layout to widget
-static inline void qwidgetReparentLayout(QWidget *parent, QLayout *layout)
-{
- Shiboken::AutoDecRef pyParent(%CONVERTTOPYTHON[QWidget *](parent));
-
- for (int i=0, i_count = layout->count(); i < i_count; i++) {
- QLayoutItem *item = layout->itemAt(i);
- if (PyErr_Occurred() || !item)
- return;
-
- if (QWidget *w = item->widget()) {
- QWidget *pw = w->parentWidget();
- if (pw != parent) {
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QWidget *](w));
- Shiboken::Object::setParent(pyParent, pyChild);
- }
- } else {
- if (QLayout *l = item->layout())
- qwidgetReparentLayout(parent, l);
- }
- }
-
- Shiboken::AutoDecRef pyChild(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::Object::setParent(pyParent, pyChild);
- //remove previous references
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(pyChild.object()),
- qPrintable(retrieveObjectName(pyChild)), Py_None);
-}
-
-static inline void qwidgetSetLayout(QWidget *self, QLayout *layout)
-{
- if (!layout || self->layout())
- return;
-
- QObject *oldParent = layout->parent();
- if (oldParent && oldParent != self) {
- if (oldParent->isWidgetType()) {
- // remove old parent policy
- Shiboken::AutoDecRef pyLayout(%CONVERTTOPYTHON[QLayout *](layout));
- Shiboken::Object::setParent(Py_None, pyLayout);
- } else {
- PyErr_Format(PyExc_RuntimeError, "QWidget::setLayout: Attempting to set QLayout \"%s\" on %s \"%s\", when the QLayout already has a parent",
- qPrintable(layout->objectName()), self->metaObject()->className(), qPrintable(self->objectName()));
- return;
- }
- }
-
- if (oldParent != self) {
- qwidgetReparentLayout(self, layout);
- if (PyErr_Occurred())
- return;
-
- self->setLayout(layout);
- }
-}
-// @snippet qwidget-glue
-
-// @snippet qwidget-setstyle
-Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYSELF), "__style__", %PYARG_1);
-// @snippet qwidget-setstyle
-
-// @snippet qwidget-style
-QStyle *myStyle = %CPPSELF->style();
-if (myStyle && qApp) {
-%PYARG_0 = %CONVERTTOPYTHON[QStyle *](myStyle);
- QStyle *appStyle = qApp->style();
- if (appStyle == myStyle) {
- Shiboken::AutoDecRef pyApp(%CONVERTTOPYTHON[QApplication *](qApp));
- Shiboken::Object::setParent(pyApp, %PYARG_0);
- Shiboken::Object::releaseOwnership(%PYARG_0);
- } else {
- Shiboken::Object::keepReference(reinterpret_cast<SbkObject *>(%PYSELF), "__style__", %PYARG_0);
- }
-}
-// @snippet qwidget-style
-
-// @snippet qapplication-init
-static void QApplicationConstructor(PyObject *self, PyObject *pyargv, QApplicationWrapper **cptr)
-{
- static int argc;
- static char **argv;
- PyObject *stringlist = PyTuple_GET_ITEM(pyargv, 0);
- if (Shiboken::listToArgcArgv(stringlist, &argc, &argv, "PySideApp")) {
- *cptr = new QApplicationWrapper(argc, argv, 0);
- Shiboken::Object::releaseOwnership(reinterpret_cast<SbkObject *>(self));
- PySide::registerCleanupFunction(&PySide::destroyQCoreApplication);
- }
-}
-// @snippet qapplication-init
-
-// @snippet qapplication-setStyle
-if (qApp) {
- Shiboken::AutoDecRef pyApp(%CONVERTTOPYTHON[QApplication *](qApp));
- Shiboken::Object::setParent(pyApp, %PYARG_1);
- Shiboken::Object::releaseOwnership(%PYARG_1);
-}
-// @snippet qapplication-setStyle
-
-// @snippet qwidget-setlayout
-qwidgetSetLayout(%CPPSELF, %1);
-// %FUNCTION_NAME() - disable generation of function call.
-// @snippet qwidget-setlayout
-
-// @snippet qtabwidget-removetab
-QWidget *tab = %CPPSELF.widget(%1);
-if (tab) {
- Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget *](tab));
- %CPPSELF.%FUNCTION_NAME(%1);
-}
-// @snippet qtabwidget-removetab
-
-// @snippet qtabwidget-clear
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-for (int i = 0, count = %CPPSELF.count(); i < count; ++i) {
- QWidget *widget = %CPPSELF.widget(i);
- if (bm.hasWrapper(widget)) {
- Shiboken::AutoDecRef pyWidget(%CONVERTTOPYTHON[QWidget *](widget));
- Shiboken::Object::releaseOwnership(pyWidget);
- }
-}
-%CPPSELF.%FUNCTION_NAME();
-// @snippet qtabwidget-clear
-
-// @snippet qlineedit-addaction
-%CPPSELF.addAction(%1);
-// @snippet qlineedit-addaction
-
-// @snippet qtoolbar-addaction-1
-QAction *action = %CPPSELF.addAction(%1, %2);
-%PYARG_0 = %CONVERTTOPYTHON[QAction *](action);
-Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- %PYARG_0, SIGNAL(triggered()), %PYARG_3)
-);
-// @snippet qtoolbar-addaction-1
-
-// @snippet qtoolbar-addaction-2
-QAction *action = %CPPSELF.addAction(%1);
-%PYARG_0 = %CONVERTTOPYTHON[QAction *](action);
-Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0,
- const_cast<char *>("connect"),
- const_cast<char *>("OsO"),
- %PYARG_0, SIGNAL(triggered()), %PYARG_2)
-);
-// @snippet qtoolbar-addaction-2
-
-// @snippet qtoolbar-addaction-3
-%CPPSELF.addAction(%1);
-// @snippet qtoolbar-addaction-3
-
-// @snippet qtoolbar-clear
-QList<PyObject *> lst;
-Shiboken::BindingManager &bm = Shiboken::BindingManager::instance();
-const auto &toolButtonChildren = %CPPSELF.findChildren<QToolButton *>();
-for (auto *child : toolButtonChildren) {
- if (bm.hasWrapper(child)) {
- PyObject *pyChild = %CONVERTTOPYTHON[QToolButton *](child);
- Shiboken::Object::setParent(0, pyChild);
- lst << pyChild;
- }
-}
-
-//Remove actions
-const auto &actions = %CPPSELF.actions();
-for (auto *act : actions) {
- Shiboken::AutoDecRef pyAct(%CONVERTTOPYTHON[QAction *](act));
- Shiboken::Object::setParent(NULL, pyAct);
- Shiboken::Object::invalidate(pyAct);
-}
-
-%CPPSELF.clear();
-for (auto *obj : lst) {
- Shiboken::Object::invalidate(reinterpret_cast<SbkObject *>(obj));
- Py_XDECREF(obj);
-}
-// @snippet qtoolbar-clear
-
-// @snippet qapplication-1
-QApplicationConstructor(%PYSELF, args, &%0);
-// @snippet qapplication-1
-
-// @snippet qapplication-2
-PyObject *empty = PyTuple_New(2);
-if (!PyTuple_SetItem(empty, 0, PyList_New(0)))
- QApplicationConstructor(%PYSELF, empty, &%0);
-// @snippet qapplication-2
-
-// @snippet qgraphicsproxywidget-setwidget
-QWidget *_old = %CPPSELF.widget();
-if (_old)
- Shiboken::Object::setParent(nullptr, %CONVERTTOPYTHON[QWidget *](_old));
-%CPPSELF.%FUNCTION_NAME(%1);
-Shiboken::Object::setParent(%PYSELF, %PYARG_1);
-// @snippet qgraphicsproxywidget-setwidget
-
-/*********************************************************************
- * CONVERSIONS
- ********************************************************************/
-
-/*********************************************************************
- * NATIVE TO TARGET CONVERSIONS
- ********************************************************************/
diff --git a/sources/pyside2/PySide2/glue/qtxml.cpp b/sources/pyside2/PySide2/glue/qtxml.cpp
deleted file mode 100644
index 684ff33c4..000000000
--- a/sources/pyside2/PySide2/glue/qtxml.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qxmlentityresolver-resolveentity
-QXmlInputSource *_qxmlinputsource_arg_ = nullptr;
-%BEGIN_ALLOW_THREADS
-%RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1, %2, _qxmlinputsource_arg_);
-%END_ALLOW_THREADS
-%PYARG_0 = PyTuple_New(2);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](%0));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QXmlInputSource *](_qxmlinputsource_arg_));
-// @snippet qxmlentityresolver-resolveentity
-
-// @snippet qdomdocument-setcontent
-QString _errorMsg_;
-int _errorLine_ = 0;
-int _errorColumn_ = 0;
-%BEGIN_ALLOW_THREADS
-bool _ret_ = %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &_errorMsg_, &_errorLine_,
- &_errorColumn_);
-%END_ALLOW_THREADS
-%PYARG_0 = PyTuple_New(4);
-PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[bool](_ret_));
-PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[QString](_errorMsg_));
-PyTuple_SET_ITEM(%PYARG_0, 2, %CONVERTTOPYTHON[int](_errorLine_));
-PyTuple_SET_ITEM(%PYARG_0, 3, %CONVERTTOPYTHON[int](_errorColumn_));
-// @snippet qdomdocument-setcontent
diff --git a/sources/pyside2/PySide2/glue/qtxmlpatterns.cpp b/sources/pyside2/PySide2/glue/qtxmlpatterns.cpp
deleted file mode 100644
index 75ad3b265..000000000
--- a/sources/pyside2/PySide2/glue/qtxmlpatterns.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// @snippet qxmlschemavalidator-schema
-QXmlSchema *%0 = new QXmlSchema(%CPPSELF.schema());
-%PYARG_0 = %CONVERTTOPYTHON[QXmlSchema *](%0);
-// @snippet qxmlschemavalidator-schema