diff options
Diffstat (limited to 'sources/pyside2/PySide2/QtCore/typesystem_core_common.xml')
-rw-r--r-- | sources/pyside2/PySide2/QtCore/typesystem_core_common.xml | 293 |
1 files changed, 175 insertions, 118 deletions
diff --git a/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml b/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml index 65f68882d..2f7ed5b9f 100644 --- a/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml +++ b/sources/pyside2/PySide2/QtCore/typesystem_core_common.xml @@ -141,6 +141,35 @@ <rejection class="*" function-name="qFreeAligned"/> <rejection class="QMetaMethod" enum-name="Attributes" /> + <rejection class="*" argument-type="QByteArrayDataPtr"/> + <rejection class="*" argument-type="^qfloat16&?$"/> + <rejection class="*" argument-type="QHashData"/> + <rejection class="*" argument-type="QHashData::Node*"/> + <rejection class="*" argument-type="QLatin1String"/> + <rejection class="*" argument-type="QLinkedListData*"/> + <rejection class="*" argument-type="QListData::ArrayCompatibleLayout"/> + <rejection class="*" argument-type="QListData::Data*"/> + <rejection class="*" argument-type="QListData::NotArrayCompatibleLayout"/> + <rejection class="*" argument-type="QList::Node*"/> + <rejection class="*" argument-type="QTSMFI"/> + <rejection class="*" argument-type="QTSMFC"/> + <rejection class="*" argument-type="QMutexData*"/> + <rejection class="*" argument-type="QObjectUserData*"/> + <rejection class="*" argument-type="QtPrivate::QSlotObjectBase*"/> + <rejection class="*" argument-type="^Q\w+Private( const)?\&$"/> + <!-- Note: "QHelpModel(QHelpEnginePrivate*)" is needed --> + <rejection class="*" argument-type="^Q[^H]\w+Private( const)?\*$"/> + <rejection class="*" argument-type="^.*::QPrivateSignal$"/> + <rejection class="*" argument-type="Qt::Initialization"/> + + <rejection class="*" argument-type="FILE*"/> + <rejection class="*" argument-type="std::chrono::milliseconds"/> + <rejection class="*" argument-type="^std::nullptr_t&?$"/> + <rejection class="*" argument-type="^std::initializer_list<.*$"/> + <rejection class="*" argument-type="^std::list<[^>]> const&$"/> + <rejection class="*" argument-type="std::string const&"/> + <rejection class="*" argument-type="^std::vector<[^>]> const&$"/> + <!-- From Qt4.6 ^^^ --> @@ -186,6 +215,7 @@ <!-- FIXME APIExtractor or shiboken do not support multiple includes by primitive type --> <include file-name="signalmanager.h" location="global"/> </primitive-type> + <primitive-type name="bool" target-lang-api-name="PyBool"> <conversion-rule> <native-to-target> @@ -238,7 +268,7 @@ </primitive-type> <inject-code class="native" position="beginning"> - bool py2kStrCheck(PyObject* obj) + bool py2kStrCheck(PyObject *obj) { #ifdef IS_PY3K return false; @@ -253,15 +283,15 @@ <conversion-rule> <native-to-target> const int N = %in.length(); - wchar_t* str = new wchar_t[N]; + wchar_t *str = new wchar_t[N]; %in.toWCharArray(str); - PyObject* %out = PyUnicode_FromWideChar(str, N); + PyObject *%out = PyUnicode_FromWideChar(str, N); delete[] str; return %out; </native-to-target> <target-to-native> <add-conversion type="PyUnicode"> - Py_UNICODE* unicode = PyUnicode_AS_UNICODE(%in); + 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); @@ -286,9 +316,9 @@ <conversion-rule> <native-to-target> const int N = %in.toString().length(); - wchar_t* str = new wchar_t[N]; + wchar_t *str = new wchar_t[N]; %in.toString().toWCharArray(str); - PyObject* %out = PyUnicode_FromWideChar(str, N); + PyObject *%out = PyUnicode_FromWideChar(str, N); delete[] str; return %out; </native-to-target> @@ -339,7 +369,7 @@ Shiboken::Conversions::SpecificConverter converter(cppInRef.typeName()); if (converter) { - void* ptr = cppInRef.data(); + void *ptr = cppInRef.data(); return converter.toPython(ptr); } PyErr_Format(PyExc_RuntimeError, "Can't find converter for '%s'.", %in.typeName()); @@ -379,7 +409,7 @@ <add-conversion type="SbkObject"> // a class supported by QVariant? int typeCode; - const char* typeName = QVariant_resolveMetaType(%in->ob_type, &typeCode); + const char *typeName = QVariant_resolveMetaType(%in->ob_type, &typeCode); if (!typeCode || !typeName) return; QVariant var(typeCode, (void*)0); @@ -402,11 +432,11 @@ </conversion-rule> </primitive-type> <inject-code class="native" position="beginning"> - static const char* QVariant_resolveMetaType(PyTypeObject* type, int* typeId) + static const char *QVariant_resolveMetaType(PyTypeObject *type, int *typeId) { if (PyObject_TypeCheck(type, &SbkObjectType_Type)) { - SbkObjectType* sbkType = (SbkObjectType*)type; - const char* typeName = Shiboken::ObjectType::getOriginalName(sbkType); + SbkObjectType *sbkType = (SbkObjectType*)type; + const char *typeName = Shiboken::ObjectType::getOriginalName(sbkType); if (!typeName) return 0; bool valueType = '*' != typeName[qstrlen(typeName) - 1]; @@ -426,8 +456,8 @@ // 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; i < PyTuple_GET_SIZE(type->tp_bases); ++i) { - const char* derivedName = QVariant_resolveMetaType((PyTypeObject*)PyTuple_GET_ITEM(type->tp_bases, i), typeId); + for (int i = 0; i < PyTuple_GET_SIZE(type->tp_bases); ++i) { + const char *derivedName = QVariant_resolveMetaType((PyTypeObject*)PyTuple_GET_ITEM(type->tp_bases, i), typeId); if (derivedName) return derivedName; } @@ -439,13 +469,13 @@ *typeId = 0; return 0; } - static QVariant QVariant_convertToValueList(PyObject* list) + static QVariant QVariant_convertToValueList(PyObject *list) { if (PySequence_Size(list) < 1) return QVariant(); Shiboken::AutoDecRef element(PySequence_GetItem(list, 0)); int typeId; - const char* typeName = QVariant_resolveMetaType(element.cast<PyTypeObject*>(), &typeId); + const char *typeName = QVariant_resolveMetaType(element.cast<PyTypeObject*>(), &typeId); if (typeName) { QByteArray listTypeName("QList<"); listTypeName += typeName; @@ -468,8 +498,8 @@ bool allString = true; Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); - for(int i = 0; i < size; ++i) { - PyObject* item = PySequence_Fast_GET_ITEM(fast.object(), i); + for (int i = 0; i < size; ++i) { + PyObject *item = PySequence_Fast_GET_ITEM(fast.object(), i); if (!%CHECKTYPE[QString](item)) { allString = false; break; @@ -477,14 +507,14 @@ } return allString; } - static QVariant QVariant_convertToVariantMap(PyObject* map) + 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; + PyObject *key; + PyObject *value; QMap<QString,QVariant> ret; while (PyDict_Next(map, &pos, &key, &value)) { QString cppKey = %CONVERTTOCPP[QString](key); @@ -493,7 +523,7 @@ } return QVariant(ret); } - static QVariant QVariant_convertToVariantList(PyObject* list) + static QVariant QVariant_convertToVariantList(PyObject *list) { if (QVariant_isStringList(list)) { QList<QString > lst = %CONVERTTOCPP[QList<QString>](list); @@ -506,7 +536,7 @@ Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); for (int i = 0; i < size; ++i) { - PyObject* pyItem = PySequence_Fast_GET_ITEM(fast.object(), i); + PyObject *pyItem = PySequence_Fast_GET_ITEM(fast.object(), i); QVariant item = %CONVERTTOCPP[QVariant](pyItem); lst.append(item); } @@ -517,12 +547,12 @@ <primitive-type name="QVariant::Type" default-constructor="QVariant::Invalid"> <conversion-rule> <native-to-target> - const char* typeName = QVariant::typeToName(%in); - PyObject* %out; - PyTypeObject* pyType = 0; + const char *typeName = QVariant::typeToName(%in); + PyObject *%out; + PyTypeObject *pyType = nullptr; if (typeName) pyType = Shiboken::Conversions::getPythonTypeObject(typeName); - %out = pyType ? ((PyObject*)pyType) : Py_None; + %out = pyType ? (reinterpret_cast<PyObject*>(pyType)) : Py_None; Py_INCREF(%out); return %out; </native-to-target> @@ -531,17 +561,17 @@ %out = QVariant::Invalid; </add-conversion> <add-conversion type="PyTypeObject"> - const char* typeName; + const char *typeName; if (Shiboken::String::checkType((PyTypeObject*)%in)) typeName = "QString"; - else if (%in == (PyObject*)&PyFloat_Type) + else if (%in == reinterpret_cast<PyObject*>(&PyFloat_Type)) typeName = "double"; // float is a UserType in QVariant. - else if (%in == (PyObject*)&PyLong_Type) + else if (%in == reinterpret_cast<PyObject*>(&PyLong_Type)) typeName = "int"; // long is a UserType in QVariant. else if (%in->ob_type == &SbkObjectType_Type) typeName = Shiboken::ObjectType::getOriginalName((SbkObjectType*)%in); else - typeName = ((PyTypeObject*)%in)->tp_name; + typeName = (reinterpret_cast<PyTypeObject*>(%in))->tp_name; %out = QVariant::nameToType(typeName); </add-conversion> <add-conversion type="PyString" check="Shiboken::String::check(%in)"> @@ -551,12 +581,7 @@ %out = QVariant::nameToType("QVariantMap"); </add-conversion> <add-conversion type="PySequence"> - const char* typeName; - if (QVariantType_isStringList(%in)) - typeName = "QStringList"; - else - typeName = "QVariantList"; - %out = QVariant::nameToType(typeName); + %out = QVariantType_isStringList(%in) ? QVariant::StringList : QVariant::List; </add-conversion> </target-to-native> </conversion-rule> @@ -568,13 +593,13 @@ </inject-code> <inject-code class="native" position="beginning"> - static bool QVariantType_isStringList(PyObject* list) + static bool QVariantType_isStringList(PyObject *list) { bool allString = true; Shiboken::AutoDecRef fast(PySequence_Fast(list, "Failed to convert QVariantList")); Py_ssize_t size = PySequence_Fast_GET_SIZE(fast.object()); - for(int i=0; i < size; i++) { - PyObject* item = PySequence_Fast_GET_ITEM(fast.object(), i); + for (int i=0; i < size; i++) { + PyObject *item = PySequence_Fast_GET_ITEM(fast.object(), i); if (!%CHECKTYPE[QString](item)) { allString = false; break; @@ -582,7 +607,7 @@ } return allString; } - static bool QVariantType_checkAllStringKeys(PyObject* dict) + static bool QVariantType_checkAllStringKeys(PyObject *dict) { Shiboken::AutoDecRef keys(PyDict_Keys(dict)); return QVariantType_isStringList(keys); @@ -733,13 +758,12 @@ </container-type> <template name="cppmap_to_pymap_conversion"> - PyObject* %out = PyDict_New(); - %INTYPE::const_iterator it = %in.begin(); - for (; it != %in.end(); ++it) { + PyObject *%out = PyDict_New(); + for (%INTYPE::const_iterator it = %in.begin(), end = %in.end(); it != end; ++it) { %INTYPE_0 key = it.key(); %INTYPE_1 value = it.value(); - PyObject* pyKey = %CONVERTTOPYTHON[%INTYPE_0](key); - PyObject* pyValue = %CONVERTTOPYTHON[%INTYPE_1](value); + PyObject *pyKey = %CONVERTTOPYTHON[%INTYPE_0](key); + PyObject *pyValue = %CONVERTTOPYTHON[%INTYPE_1](value); PyDict_SetItem(%out, pyKey, pyValue); Py_DECREF(pyKey); Py_DECREF(pyValue); @@ -747,8 +771,8 @@ return %out; </template> <template name="pydict_to_cppmap_conversion"> - PyObject* key; - PyObject* value; + PyObject *key; + PyObject *value; Py_ssize_t pos = 0; while (PyDict_Next(%in, &pos, &key, &value)) { %OUTTYPE_0 cppKey = %CONVERTTOCPP[%OUTTYPE_0](key); @@ -803,7 +827,7 @@ <include file-name="QPair" location="global"/> <conversion-rule> <native-to-target> - PyObject* %out = PyTuple_New(2); + 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; @@ -972,13 +996,13 @@ void globalPostRoutineCallback() { Shiboken::GilState state; - foreach(PyObject* callback, globalPostRoutineFunctions) { + foreach(PyObject *callback, globalPostRoutineFunctions) { Shiboken::AutoDecRef result(PyObject_CallObject(callback, NULL)); Py_DECREF(callback); } globalPostRoutineFunctions.clear(); } - void addPostRoutine(PyObject* callback) + void addPostRoutine(PyObject *callback) { if (PyCallable_Check(callback)) { globalPostRoutineFunctions << callback; @@ -1000,7 +1024,7 @@ <inject-code class="target" position="end"> QList<QByteArray> version = QByteArray(qVersion()).split('.'); - PyObject* pyQtVersion = PyTuple_New(3); + 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); @@ -1022,7 +1046,7 @@ } } if (!atexit.isNull() && !regFunc.isNull()){ - PyObject* shutDownFunc = PyObject_GetAttrString(module, "__moduleShutdown"); + 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)); @@ -1050,9 +1074,9 @@ <inject-code class="native" position="beginning"> // Define a global variable to handle qInstallMessageHandler callback - static PyObject* qtmsghandler = 0; + static PyObject *qtmsghandler = nullptr; - static void msgHandlerCallback(QtMsgType type, const QMessageLogContext & ctx, const QString &msg) + static void msgHandlerCallback(QtMsgType type, const QMessageLogContext &ctx, const QString &msg) { Shiboken::GilState state; Shiboken::AutoDecRef arglist(PyTuple_New(3)); @@ -1119,7 +1143,7 @@ </add-function> <inject-code class="native" position="beginning"> namespace PySide { - template<> inline uint hash(const QLine& v) { + template<> inline uint hash(const QLine &v) { return qHash(qMakePair(qMakePair(v.x1(), v.y1()), qMakePair(v.x2(), v.y2()))); } }; @@ -1187,7 +1211,7 @@ <replace-type modified-type="PyObject" /> </modify-argument> <inject-code> - const void* d = %CPPSELF.%FUNCTION_NAME(); + const void *d = %CPPSELF.%FUNCTION_NAME(); if (d) { %PYARG_0 = Shiboken::Buffer::newObject(d, %CPPSELF.size()); } else { @@ -1197,8 +1221,8 @@ </inject-code> </modify-function> <template name="QResource_registerResource"> - uchar* ptr = (uchar*) Shiboken::Buffer::getPointer(%PYARG_1); - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(const_cast<const uchar*>(ptr), %2); + uchar *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); </template> @@ -1231,7 +1255,7 @@ (PyDateTimeAPI = (PyDateTime_CAPI*) PyCObject_Import((char*)"datetime", \ (char*)"datetime_CAPI")) #endif - static bool PyDateTime_ImportAndCheck(PyObject* pyIn) { + static bool PyDateTime_ImportAndCheck(PyObject *pyIn) { if (!PyDateTimeAPI) PySideDateTime_IMPORT; return $DATETIMETYPE_Check(pyIn); } @@ -1277,7 +1301,8 @@ </add-function> <add-function signature="toPython()" return-type="PyObject"> <inject-code class="target" position="beginning"> - if (!PyDateTimeAPI) PySideDateTime_IMPORT; + if (!PyDateTimeAPI) + PySideDateTime_IMPORT; %PYARG_0 = PyDate_FromDate(%CPPSELF.year(), %CPPSELF.month(), %CPPSELF.day()); </inject-code> </add-function> @@ -1425,7 +1450,7 @@ </add-function> <inject-code class="native" position="beginning"> namespace PySide { - template<> inline uint hash(const QPoint& v) { + template<> inline uint hash(const QPoint &v) { return qHash(qMakePair(v.x(), v.y())); } }; @@ -1497,7 +1522,7 @@ </add-function> <inject-code class="native" position="beginning"> namespace PySide { - template<> inline uint hash(const QRect& v) { + template<> inline uint hash(const QRect &v) { return qHash(qMakePair(qMakePair(v.x(), v.y()), qMakePair(v.width(), v.height()))); } }; @@ -1635,7 +1660,7 @@ </add-function> <inject-code class="native" position="beginning"> namespace PySide { - template<> inline uint hash(const QSize& v) { + template<> inline uint hash(const QSize &v) { return qHash(qMakePair(v.width(), v.height())); } }; @@ -1732,7 +1757,8 @@ </add-function> <add-function signature="toPython()" return-type="PyObject"> <inject-code class="target" position="beginning"> - if (!PyDateTimeAPI) PySideDateTime_IMPORT; + if (!PyDateTimeAPI) + PySideDateTime_IMPORT; %PYARG_0 = PyTime_FromTime(%CPPSELF.hour(), %CPPSELF.minute(), %CPPSELF.second(), %CPPSELF.msec()*1000); </inject-code> </add-function> @@ -1756,9 +1782,7 @@ <value-type name="OffsetData"/> </value-type> - <!-- FIXME QT5: Remove QUuid because cyclic dependency found on overloaddata QUuid(), - this lead to cyclic dependency in <<(QDataStream &, QUUid) and incorrect QDataStream code generation (Windows only)--> - <!-- <value-type name="QUuid"> + <value-type name="QUuid"> <enum-type name="Variant"/> <enum-type name="Version"/> <add-function signature="__repr__" return-type="PyObject*"> @@ -1777,7 +1801,7 @@ </insert-template> </inject-code> </add-function> - </value-type> --> + </value-type> <value-type name="QMimeType" since="5.0" /> <object-type name="QMimeDatabase" since="5.0"> @@ -1939,8 +1963,8 @@ </add-function> <add-function signature="__setitem__"> <inject-code class="target" position="beginning"> - PyObject* args = Py_BuildValue("(iiO)", _i, 1, _value); - PyObject* result = Sbk_QBitArrayFunc_setBit(self, args); + 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; @@ -2239,7 +2263,7 @@ <inject-code class="native" file="glue/qobject_findchild.cpp"/> <add-function signature="findChild(PyTypeObject*, const QString&)" return-type="PyObject*"> <inject-code class="target" position="beginning"> - QObject* child = _findChildHelper(%CPPSELF, %2, (PyTypeObject*)%PYARG_1); + QObject *child = _findChildHelper(%CPPSELF, %2, (PyTypeObject*)%PYARG_1); %PYARG_0 = %CONVERTTOPYTHON[QObject*](child); </inject-code> <modify-argument index="return"> @@ -2302,7 +2326,7 @@ // 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); + ret -= PySide::SignalManager::instance().countConnectionsWith(%CPPSELF); %PYARG_0 = %CONVERTTOPYTHON[int](ret); </inject-code> @@ -2339,6 +2363,7 @@ <include file-name="QSize" location="global"/> </extra-includes> </object-type> + <value-type name="QUrlQuery" since="5.0" /> <value-type name="QUrl" hash-function="PySide::hash"> <!-- Qt5: lots of changes --> <enum-type name="ComponentFormattingOption" flags="ComponentFormattingOptions,FormattingOptions"/> @@ -2429,6 +2454,15 @@ </inject-code> </add-function> </value-type> + + <value-type name="QRegularExpression"> + <enum-type name="MatchOption" flags="MatchOptions"/> + <enum-type name="MatchType"/> + <enum-type name="PatternOption" flags="PatternOptions"/> + </value-type> + <value-type name="QRegularExpressionMatch"/> + <value-type name="QRegularExpressionMatchIterator"/> + <value-type name="QFileInfo"> <extra-includes> <include file-name="QDateTime" location="global"/> @@ -2548,10 +2582,10 @@ <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> - QByteArray b(((PyObject*)%PYSELF)->ob_type->tp_name); - PyObject* aux = Shiboken::String::fromStringAndSize(%CPPSELF.constData(), %CPPSELF.size()); + QByteArray b((reinterpret_cast<PyObject*>(%PYSELF))->ob_type->tp_name); + PyObject *aux = Shiboken::String::fromStringAndSize(%CPPSELF.constData(), %CPPSELF.size()); if (PyUnicode_CheckExact(aux)) { - PyObject* tmp = PyUnicode_AsASCIIString(aux); + PyObject *tmp = PyUnicode_AsASCIIString(aux); Py_DECREF(aux); aux = tmp; } @@ -2762,8 +2796,8 @@ <add-function signature="__setitem__"> <inject-code class="target" position="beginning"> %CPPSELF.remove(_i, 1); - PyObject* args = Py_BuildValue("(nO)", _i, _value); - PyObject* result = Sbk_QByteArrayFunc_insert(self, args); + PyObject *args = Py_BuildValue("(nO)", _i, _value); + PyObject *result = Sbk_QByteArrayFunc_insert(self, args); Py_DECREF(args); Py_XDECREF(result); return !result ? -1 : 0; @@ -2810,7 +2844,7 @@ <replace-type modified-type="PyBuffer"/> </modify-argument> <inject-code> - uchar* ptr = (uchar*) Shiboken::Buffer::getPointer(%PYARG_1); + uchar *ptr = reinterpret_cast<uchar*>(Shiboken::Buffer::getPointer(%PYARG_1)); %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(ptr); %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); </inject-code> @@ -2871,7 +2905,7 @@ QByteArray ba; ba.resize(%2); %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); - %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); + %PYARG_0 = Shiboken::String::fromCString(ba.constData()); </inject-code> <modify-argument index="1"> <remove-argument /> @@ -2895,7 +2929,7 @@ QByteArray ba; ba.resize(%2); %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); - %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); + %PYARG_0 = Shiboken::String::fromCString(ba.constData()); </inject-code> <modify-argument index="1"> <remove-argument /> @@ -2903,12 +2937,13 @@ <modify-argument index="return"> <replace-type modified-type="PyObject"/> <conversion-rule class="native"> - %RETURN_TYPE %out; - if (!PyBytes_Check(%PYARG_0)) { - %out = -1; - } else { + %RETURN_TYPE %out = 0; + if (PyBytes_Check(%PYARG_0)) { %out = PyBytes_GET_SIZE((PyObject*)%PYARG_0); memcpy(%1, PyBytes_AS_STRING((PyObject*)%PYARG_0), %out); + } else if (Shiboken::String::check(%PYARG_0)) { + %out = Shiboken::String::len((PyObject*)%PYARG_0); + memcpy(%1, Shiboken::String::toCString((PyObject*)%PYARG_0), %out); } </conversion-rule> </modify-argument> @@ -3050,7 +3085,7 @@ </modify-argument> <inject-code> Py_ssize_t size; - uchar* ptr = (uchar*) Shiboken::Buffer::getPointer(%PYARG_1, &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); </inject-code> @@ -3068,6 +3103,8 @@ <object-type name="QBuffer"> <!-- ### setData(QByteArray) do the job --> <modify-function signature="setData(const char*,int)" remove="all"/> + <!-- Disambiguate from Qt3DRender/qbuffer.h --> + <include file-name="QtCore/qbuffer.h" location="global"/> </object-type> <object-type name="QTimer"> <modify-function signature="singleShot(int,const QObject*,const char*)"> @@ -3075,14 +3112,14 @@ // %FUNCTION_NAME() - disable generation of c++ function call (void) %2; // remove warning about unused variable Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); - PyObject* pyTimer = Shiboken::SbkType<QTimer>()->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0); + PyObject *pyTimer = Shiboken::SbkType<QTimer>()->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, 0); Shiboken::SbkType<QTimer>()->tp_init(pyTimer, emptyTuple, 0); QTimer* timer = %CONVERTTOCPP[QTimer*](pyTimer); Shiboken::AutoDecRef result( PyObject_CallMethod(pyTimer, - const_cast<char*>("connect"), - const_cast<char*>("OsOs"), + const_cast<char*>("connect"), + const_cast<char*>("OsOs"), pyTimer, SIGNAL(timeout()), %PYARG_2, @@ -3105,12 +3142,12 @@ timer->setSingleShot(true); if (PyObject_TypeCheck(%2, &PySideSignalInstanceType)) { - PySideSignalInstance* signalInstance = reinterpret_cast<PySideSignalInstance*>(%2); + 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"), + const_cast<char*>("connect"), + const_cast<char*>("OsOO"), pyTimer, SIGNAL(timeout()), PySide::Signal::getObject(signalInstance), @@ -3119,8 +3156,8 @@ } else { Shiboken::AutoDecRef result( PyObject_CallMethod(pyTimer, - const_cast<char*>("connect"), - const_cast<char*>("OsO"), + const_cast<char*>("connect"), + const_cast<char*>("OsO"), pyTimer, SIGNAL(timeout()), %PYARG_2) @@ -3170,7 +3207,7 @@ <inject-code> long result; #ifdef WIN32 - _PROCESS_INFORMATION* procInfo = %CPPSELF.%FUNCTION_NAME(); + _PROCESS_INFORMATION *procInfo = %CPPSELF.%FUNCTION_NAME(); result = procInfo ? procInfo->dwProcessId : 0; #else result = %CPPSELF.%FUNCTION_NAME(); @@ -3249,7 +3286,7 @@ <modify-function signature="notify(QObject*,QEvent*)" allow-thread="yes"> <modify-argument index="2" invalidate-after-use="yes"/> </modify-function> - <modify-function signature="QCoreApplication(int &, char **)" access="private"/> + <modify-function signature="QCoreApplication(int &, char **, int)" access="private"/> <inject-code class="native" file="glue/qcoreapplication_init.cpp" position="beginning" /> <modify-function signature="postEvent(QObject*,QEvent*, int)"> <modify-argument index="2"> @@ -3593,8 +3630,8 @@ <modify-function signature="operator<<(float)" remove="all"/> <modify-function signature="operator<<(qlonglong)" remove="all"/> <modify-function signature="operator<<(qulonglong)" remove="all"/> - <modify-function signature="operator<<(signed short)" remove="all"/> - <modify-function signature="operator<<(signed int)" remove="all"/> + <modify-function signature="operator<<(short)" remove="all"/> + <modify-function signature="operator<<(int)" remove="all"/> <modify-function signature="operator<<(unsigned int)" remove="all"/> <modify-function signature="operator<<(unsigned short)" remove="all"/> <modify-function signature="operator<<(const char*)" remove="all"/> @@ -3605,9 +3642,9 @@ <modify-function signature="operator>>(double&)" remove="all"/> <modify-function signature="operator>>(qlonglong&)" remove="all"/> <modify-function signature="operator>>(qulonglong&)" remove="all"/> - <modify-function signature="operator>>(signed long&)" remove="all"/> - <modify-function signature="operator>>(signed int&)" remove="all"/> - <modify-function signature="operator>>(signed short&)" remove="all"/> + <modify-function signature="operator>>(long&)" remove="all"/> + <modify-function signature="operator>>(int&)" remove="all"/> + <modify-function signature="operator>>(short&)" remove="all"/> <modify-function signature="operator>>(unsigned long&)" remove="all"/> <modify-function signature="operator>>(unsigned int&)" remove="all"/> <modify-function signature="operator>>(unsigned short&)" remove="all"/> @@ -3620,7 +3657,7 @@ <modify-argument index="return"> <!--<replace-type modified-type="QString" />--> <conversion-rule class="target"> - QString& res = *%0; + QString &res = *%0; %PYARG_0 = %CONVERTTOPYTHON[QString](res); </conversion-rule> </modify-argument> @@ -3854,9 +3891,9 @@ <modify-function signature="clear()" > <inject-code class="target" position="beginning"> - for(int counter = 0; counter < %CPPSELF.animationCount(); ++counter ) { - QAbstractAnimation* animation = %CPPSELF.animationAt(counter); - PyObject* obj = %CONVERTTOPYTHON[QAbstractAnimation*](animation); + for (int counter = 0; counter < %CPPSELF.animationCount(); ++counter ) { + QAbstractAnimation *animation = %CPPSELF.animationAt(counter); + PyObject *obj = %CONVERTTOPYTHON[QAbstractAnimation*](animation); Shiboken::Object::setParent(NULL, obj); Py_DECREF(obj); } @@ -3980,11 +4017,11 @@ s1.addTransition(button.clicked, s1h)</code> </modify-argument> <inject-code> if (PyObject_TypeCheck(%1, &PySideSignalInstanceType)) { - PyObject* dataSource = PySide::Signal::getObject((PySideSignalInstance*) %PYARG_1); + PyObject *dataSource = PySide::Signal::getObject((PySideSignalInstance*)%PYARG_1); Shiboken::AutoDecRef obType(PyObject_Type(dataSource)); QObject* sender = %CONVERTTOCPP[QObject*](dataSource); if (sender) { - const char* dataSignature = PySide::Signal::getSignature((PySideSignalInstance*) %PYARG_1); + const char *dataSignature = PySide::Signal::getSignature((PySideSignalInstance*)%PYARG_1); QByteArray signature(dataSignature); // Append SIGNAL flag (2) %0 = new QSignalTransitionWrapper(sender, "2" + signature, %2); } @@ -4009,7 +4046,7 @@ s1.addTransition(button.clicked, s1h)</code> <inject-code class="target" position="beginning"> QString signalName(%2); if (PySide::SignalManager::registerMetaMethod(%1, signalName.mid(1).toLatin1().data(), QMetaMethod::Signal)) { - QSignalTransition* %0 = %CPPSELF->addTransition(%1, %2, %3); + QSignalTransition *%0 = %CPPSELF->addTransition(%1, %2, %3); %PYARG_0 = %CONVERTTOPYTHON[QSignalTransition*](%0); } else { Py_INCREF(Py_None); @@ -4037,9 +4074,9 @@ s1.addTransition(button.clicked, s1h)</code> // http://bugs.openbossa.org/show_bug.cgi?id=362 if (!PyObject_TypeCheck(%1, &PySideSignalInstanceType)) goto Sbk_%TYPEFunc_%FUNCTION_NAME_TypeError; - PySideSignalInstance* signalInstance = reinterpret_cast<PySideSignalInstance*>(%1); + PySideSignalInstance *signalInstance = reinterpret_cast<PySideSignalInstance*>(%1); QObject* sender = %CONVERTTOCPP[QObject*](PySide::Signal::getObject(signalInstance)); - QSignalTransition* %0 = %CPPSELF->%FUNCTION_NAME(sender, PySide::Signal::getSignature(signalInstance), %2); + QSignalTransition *%0 = %CPPSELF->%FUNCTION_NAME(sender, PySide::Signal::getSignature(signalInstance), %2); %PYARG_0 = %CONVERTTOPYTHON[QSignalTransition*](%0); </inject-code> </add-function> @@ -4072,7 +4109,7 @@ s1.addTransition(button.clicked, s1h)</code> <add-function signature="configuration()" return-type="list of QAbstractState" > <inject-code class="target" position="beginning"> %PYARG_0 = PySet_New(0); - foreach(QAbstractState* abs_state, %CPPSELF.configuration()) { + foreach(QAbstractState *abs_state, %CPPSELF.configuration()) { Shiboken::AutoDecRef obj(%CONVERTTOPYTHON[QAbstractState*](abs_state)); Shiboken::Object::setParent(self, obj); PySet_Add(%PYARG_0, obj); @@ -4085,7 +4122,7 @@ s1.addTransition(button.clicked, s1h)</code> <add-function signature="defaultAnimations()" return-type="list of QAbstractAnimation" > <inject-code class="target" position="beginning"> %PYARG_0 = PyList_New(0); - foreach(QAbstractAnimation* abs_anim, %CPPSELF.defaultAnimations()) { + foreach(QAbstractAnimation *abs_anim, %CPPSELF.defaultAnimations()) { Shiboken::AutoDecRef obj(%CONVERTTOPYTHON[QAbstractAnimation*](abs_anim)); Shiboken::Object::setParent(self, obj); PyList_Append(%PYARG_0, obj); @@ -4096,6 +4133,14 @@ s1.addTransition(button.clicked, s1h)</code> <object-type name="QVariantAnimation" since="4.6"/> + <value-type name="QVersionNumber" since="5.6"> + <modify-function signature="fromString(const QString &,int*)"> + <modify-argument index="2"> + <remove-argument/> + </modify-argument> + </modify-function> + </value-type> + <!-- From Qt4.6 ^^^ --> <add-function signature="SIGNAL(const char*)" return-type="str"> @@ -4151,17 +4196,17 @@ s1.addTransition(button.clicked, s1h)</code> </inject-code> <add-function signature="qRegisterResourceData(int, PyBytes, PyBytes, PyBytes)" return-type="bool"> <inject-code class="target" position="beginning"> - %RETURN_TYPE %0 = %FUNCTION_NAME(%1, (uchar*)PyBytes_AS_STRING(%PYARG_2), - (uchar*)PyBytes_AS_STRING(%PYARG_3), - (uchar*)PyBytes_AS_STRING(%PYARG_4)); + %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); </inject-code> </add-function> <add-function signature="qUnregisterResourceData(int, PyBytes, PyBytes, PyBytes)" return-type="bool"> <inject-code class="target" position="beginning"> - %RETURN_TYPE %0 = %FUNCTION_NAME(%1, (uchar*)PyBytes_AS_STRING(%PYARG_2), - (uchar*)PyBytes_AS_STRING(%PYARG_3), - (uchar*)PyBytes_AS_STRING(%PYARG_4)); + %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); </inject-code> </add-function> @@ -4213,7 +4258,7 @@ s1.addTransition(button.clicked, s1h)</code> <!-- TODO: this need be removed --> <suppress-warning text="skipping function '*', unmatched return type '*'"/> - <suppress-warning text="skipping function '*', unmatched parameter type '*'"/> + <suppress-warning text="skipping function '*', unmatched type '*"/> <suppress-warning text="enum 'q_static_assert_result39' does not have a type entry or is not an enum"/> <suppress-warning text="horribly broken type ''"/> @@ -4231,4 +4276,16 @@ s1.addTransition(button.clicked, s1h)</code> <suppress-warning text="enum 'RelationFlag' does not have a type entry or is not an enum" /> <suppress-warning text="enum 'Role' does not have a type entry or is not an enum" /> + <!-- Anonymous enum in qtbase/src/corelib/global/qtypeinfo.h --> + <suppress-warning text="enum 'Q_RELOCATABLE_TYPE' does not have a type entry or is not an enum" /> + + <!-- Another anonymous enum / value pair in in qtbase/src/corelib/kernel/qcoreapplication.h --> + <suppress-warning text="no matching enum 'QT_VERSION'" /> + <suppress-warning text="unhandled enum value: QT_VERSION in QCoreApplication::ApplicationFlags from header 'qcoreapplication.h'" /> + <suppress-warning text="unmatched enum QT_VERSION from header 'qcoreapplication.h'" /> + + <suppress-warning text="skipping field 'QSysInfo::WindowsVersion' with unmatched type 'const QSysInfo::WinVersion'" /> + <suppress-warning text="template baseclass 'QListSpecialMethods<T>' of 'QList' is not known" /> + + </typesystem> |