diff options
author | Hugo Parente Lima <hugo.lima@openbossa.org> | 2010-06-03 15:34:17 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.lima@openbossa.org> | 2010-06-10 14:57:41 -0300 |
commit | e39bfefde9edda662f51eeaf9a482f209c7f1217 (patch) | |
tree | a4add52f8ca3460fcaed99c6d9c7fc810f341a49 /PySide | |
parent | 24a944590663582df72aefd1929ec19ba3c6414f (diff) |
Remove wrapper for classes: QString, QStringRef, QLatin1String, QStringMatcher, QChar and QLatin1Char.
Diffstat (limited to 'PySide')
-rw-r--r-- | PySide/QtCore/CMakeLists.txt | 7 | ||||
-rw-r--r-- | PySide/QtCore/glue/qstring_bufferprotocol.cpp | 43 | ||||
-rw-r--r-- | PySide/QtCore/glue/qstring_hashfunc.cpp | 6 | ||||
-rw-r--r-- | PySide/QtCore/qchar_conversions.h | 42 | ||||
-rw-r--r-- | PySide/QtCore/qstring_conversions.h | 124 | ||||
-rw-r--r-- | PySide/QtCore/qstringlist_conversions.h | 16 | ||||
-rw-r--r-- | PySide/QtCore/qstringref_conversions.h | 19 | ||||
-rw-r--r-- | PySide/QtCore/typesystem_core.xml | 371 |
8 files changed, 140 insertions, 488 deletions
diff --git a/PySide/QtCore/CMakeLists.txt b/PySide/QtCore/CMakeLists.txt index 757251919..bbe8ba7b5 100644 --- a/PySide/QtCore/CMakeLists.txt +++ b/PySide/QtCore/CMakeLists.txt @@ -49,7 +49,6 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qbitarray_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qbuffer_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qbytearray_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qbytearraymatcher_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qchar_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qchildevent_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qcoreapplication_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qcryptographichash_wrapper.cpp @@ -69,8 +68,6 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qfsfileengine_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qgenericargument_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qgenericreturnargument_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qiodevice_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qlatin1char_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qlatin1string_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qlibraryinfo_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qline_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qlinef_wrapper.cpp @@ -101,10 +98,6 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsignalmapper_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsize_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsizef_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsocketnotifier_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qstring_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qstringlist_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qstringmatcher_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qstringref_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsysinfo_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsystemlocale_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/qsystemsemaphore_wrapper.cpp diff --git a/PySide/QtCore/glue/qstring_bufferprotocol.cpp b/PySide/QtCore/glue/qstring_bufferprotocol.cpp deleted file mode 100644 index 02ca32c6f..000000000 --- a/PySide/QtCore/glue/qstring_bufferprotocol.cpp +++ /dev/null @@ -1,43 +0,0 @@ - -#if PY_VERSION_HEX < 0x03000000 - -// QByteArray buffer protocol functions -// see: http://www.python.org/dev/peps/pep-3118/ - -extern "C" { - -static Py_ssize_t SbkQString_segcountproc(PyObject* self, Py_ssize_t* lenp) -{ - if (lenp) - *lenp = self->ob_type->tp_as_sequence->sq_length(self); - return 1; -} - -static Py_ssize_t SbkQString_readbufferproc(PyObject* self, Py_ssize_t segment, char** ptrptr) -{ - if (segment || Shiboken::cppObjectIsInvalid(self)) - return -1; - - QString* cppSelf = Converter<QString*>::toCpp(self); - QByteArray decodedData = cppSelf->toLocal8Bit(); - Shiboken::AutoDecRef decodedString(PyString_FromStringAndSize(decodedData.constData(), decodedData.size())); - - // delete __encodedStr attr if it exists - Shiboken::AutoDecRef attrName(PyString_FromStringAndSize("__encodedStr", sizeof("__encodedStr")-1)); - if (PyObject_HasAttr(self, attrName)) - PyObject_DelAttr(self, attrName); - PyObject_SetAttr(self, attrName, decodedString); - *ptrptr = PyString_AS_STRING(decodedString.object()); - return decodedData.size(); -} - -PyBufferProcs SbkQStringBufferProc = { - /*bf_getreadbuffer*/ 0, - /*bf_getwritebuffer*/ 0, - /*bf_getsegcount*/ &SbkQString_segcountproc, - /*bf_getcharbuffer*/ &SbkQString_readbufferproc -}; - -} - -#endif diff --git a/PySide/QtCore/glue/qstring_hashfunc.cpp b/PySide/QtCore/glue/qstring_hashfunc.cpp deleted file mode 100644 index b2fb6a1c9..000000000 --- a/PySide/QtCore/glue/qstring_hashfunc.cpp +++ /dev/null @@ -1,6 +0,0 @@ -static long QStringCustomHashFunction(const QString& str) -{ - QByteArray data = str.toUtf8(); - Shiboken::AutoDecRef unicodeObj(PyUnicode_DecodeUTF8(data.constData(), data.length(), 0)); - return unicodeObj->ob_type->tp_hash(unicodeObj); -} diff --git a/PySide/QtCore/qchar_conversions.h b/PySide/QtCore/qchar_conversions.h index 6347c9311..ab477efc8 100644 --- a/PySide/QtCore/qchar_conversions.h +++ b/PySide/QtCore/qchar_conversions.h @@ -1,30 +1,30 @@ namespace Shiboken { -inline bool Shiboken::Converter<QChar >::isConvertible(PyObject* pyObj) -{ - return PyObject_TypeCheck(pyObj, SbkType<QChar>()) - || SbkPySide_QtCore_QChar_SpecialCharacter_Check(pyObj) - || SbkQLatin1Char_Check(pyObj) - || (PyString_Check(pyObj) && (PyString_Size(pyObj) == 1)) - || PyInt_Check(pyObj); -} -inline QChar Shiboken::Converter<QChar >::toCpp(PyObject* pyObj) +template<> +class Converter<QChar> { - if (!Shiboken_TypeCheck(pyObj, QChar)) { - if (SbkPySide_QtCore_QChar_SpecialCharacter_Check(pyObj)) - return QChar(Shiboken::Converter<QChar::SpecialCharacter >::toCpp(pyObj)); - else if (SbkQLatin1Char_Check(pyObj)) - return QChar(Shiboken::Converter<QLatin1Char >::toCpp(pyObj)); - else if (PyString_Check(pyObj) && PyString_Size(pyObj) == 1) +public: + static bool isConvertible(PyObject* pyObj) + { + return (PyString_Check(pyObj) && (PyString_Size(pyObj) == 1)) + || PyInt_Check(pyObj); + } + + static QChar toCpp(PyObject* pyObj) + { + if (PyString_Check(pyObj) && PyString_Size(pyObj) == 1) return QChar(Shiboken::Converter<char >::toCpp(pyObj)); else if (PyInt_Check(pyObj)) return QChar(Shiboken::Converter<int >::toCpp(pyObj)); + return QChar(); } - return *Converter<QChar*>::toCpp(pyObj); -} -inline PyObject* Converter<QChar>::toPython(const QChar& cppObj) -{ - return ValueTypeConverter<QChar>::toPython(cppObj); -} + static PyObject* toPython(void* cppObj) { return toPython(*reinterpret_cast<QChar*>(cppObj)); } + static PyObject* toPython(const QChar& cppObj) + { + wchar_t c = (wchar_t)cppObj.unicode(); + PyObject* pyObj = PyUnicode_FromWideChar(&c, 1); + return pyObj; + } +}; } diff --git a/PySide/QtCore/qstring_conversions.h b/PySide/QtCore/qstring_conversions.h index 2c59928dd..392f0e7b7 100644 --- a/PySide/QtCore/qstring_conversions.h +++ b/PySide/QtCore/qstring_conversions.h @@ -1,72 +1,70 @@ namespace Shiboken { -inline bool Converter<QString>::isConvertible(PyObject* pyObj) -{ - SbkBaseWrapperType* shiboType = reinterpret_cast<SbkBaseWrapperType*>(SbkType<QString>()); - return PyString_Check(pyObj) - || PyObject_TypeCheck(pyObj, SbkType<QString>()) - || PyUnicode_Check(pyObj) - || SbkQByteArray_Check(pyObj) - || SbkQLatin1String_Check(pyObj) - || pyObj == Py_None -#if PY_VERSION_HEX < 0x03000000 - || (pyObj->ob_type->tp_as_buffer - && PyType_HasFeature(pyObj->ob_type, Py_TPFLAGS_HAVE_GETCHARBUFFER) - && pyObj->ob_type->tp_as_buffer->bf_getcharbuffer) -#endif - || SbkQChar_Check(pyObj) - || (shiboType->ext_isconvertible && shiboType->ext_isconvertible(pyObj)); -} -inline QString Converter<QString>::toCpp(PyObject* pyObj) +template<> +class Converter<QString> { - SbkBaseWrapperType* shiboType = reinterpret_cast<SbkBaseWrapperType*>(SbkType<QString>()); - if (SbkQChar_Check(pyObj)) { - return QString(Converter< QChar >::toCpp(pyObj)); - } else if (SbkQByteArray_Check(pyObj)) { - return QString(Converter< QByteArray >::toCpp(pyObj)); - } else if (SbkQLatin1String_Check(pyObj)) { - return QString(Converter< QLatin1String >::toCpp(pyObj)); - } else if (PyUnicode_Check(pyObj)) { - Py_UNICODE* unicode = PyUnicode_AS_UNICODE(pyObj); -#if defined(Py_UNICODE_WIDE) - // cast as Py_UNICODE can be a different type - return QString::fromUcs4(reinterpret_cast<const uint*>(unicode)); -#else - return QString::fromUtf16(unicode, PyUnicode_GET_SIZE(pyObj)); -#endif - } else if (PyString_Check(pyObj)) { - return QString(Converter< char * >::toCpp(pyObj)); - } else if (pyObj == Py_None) { - return QString(); +public: + static bool isConvertible(PyObject* pyObj) + { + return PyString_Check(pyObj) + || PyUnicode_Check(pyObj) + || SbkQByteArray_Check(pyObj) + || pyObj == Py_None + #if PY_VERSION_HEX < 0x03000000 + || (pyObj->ob_type->tp_as_buffer + && PyType_HasFeature(pyObj->ob_type, Py_TPFLAGS_HAVE_GETCHARBUFFER) + && pyObj->ob_type->tp_as_buffer->bf_getcharbuffer) + #endif + ; } + + static QString toCpp(PyObject* pyObj) + { + if (PyUnicode_Check(pyObj)) { + Py_UNICODE* unicode = PyUnicode_AS_UNICODE(pyObj); + #if defined(Py_UNICODE_WIDE) + // cast as Py_UNICODE can be a different type + return QString::fromUcs4(reinterpret_cast<const uint*>(unicode)); + #else + return QString::fromUtf16(unicode, PyUnicode_GET_SIZE(pyObj)); + #endif + } else if (PyString_Check(pyObj)) { + return QString(Converter< char * >::toCpp(pyObj)); + } else if (pyObj == Py_None) { + return QString(); + } else if (SbkQByteArray_Check(pyObj)) { + return QString(Converter< QByteArray >::toCpp(pyObj)); + } #if PY_VERSION_HEX < 0x03000000 - // Support for buffer objects on QString constructor - else if (pyObj->ob_type->tp_as_buffer - && PyType_HasFeature(pyObj->ob_type, Py_TPFLAGS_HAVE_GETCHARBUFFER) - && pyObj->ob_type->tp_as_buffer->bf_getcharbuffer) { - QByteArray data; - PyBufferProcs* bufferProcs = pyObj->ob_type->tp_as_buffer; - int segments = bufferProcs->bf_getsegcount(pyObj, 0); - for (int i = 0; i < segments; ++i) { - char* segmentData; - int length = bufferProcs->bf_getcharbuffer(pyObj, i, &segmentData); - if (length == -1) - break; - data.append(segmentData, length); + // Support for buffer objects on QString constructor + else if (pyObj->ob_type->tp_as_buffer + && PyType_HasFeature(pyObj->ob_type, Py_TPFLAGS_HAVE_GETCHARBUFFER) + && pyObj->ob_type->tp_as_buffer->bf_getcharbuffer) { + QByteArray data; + PyBufferProcs* bufferProcs = pyObj->ob_type->tp_as_buffer; + int segments = bufferProcs->bf_getsegcount(pyObj, 0); + for (int i = 0; i < segments; ++i) { + char* segmentData; + int length = bufferProcs->bf_getcharbuffer(pyObj, i, &segmentData); + if (length == -1) + break; + data.append(segmentData, length); + } + return QString(data); } - return QString(data); - } -#endif - else if (shiboType->ext_isconvertible && shiboType->ext_tocpp && shiboType->ext_isconvertible(pyObj)) { - QString* cptr = reinterpret_cast<QString*>(shiboType->ext_tocpp(pyObj)); - std::auto_ptr<QString> cptr_auto_ptr(cptr); - return *cptr; + #endif + return QString(); } - return *Converter<QString*>::toCpp(pyObj); -} -inline PyObject* Converter<QString>::toPython(const QString& cppObj) -{ - return ValueTypeConverter<QString>::toPython(cppObj); -} + static PyObject* toPython(void* cppObj) { return toPython(*reinterpret_cast<QString*>(cppObj)); } + static PyObject* toPython(const QString& cppObj) + { + const int N = cppObj.length(); + wchar_t* str = new wchar_t[N]; + cppObj.toWCharArray(str); + PyObject* pyObj = PyUnicode_FromWideChar(str, N); + delete[] str; + return pyObj; + } +}; } diff --git a/PySide/QtCore/qstringlist_conversions.h b/PySide/QtCore/qstringlist_conversions.h index 9a5ec5f0b..6075c1672 100644 --- a/PySide/QtCore/qstringlist_conversions.h +++ b/PySide/QtCore/qstringlist_conversions.h @@ -1,17 +1,5 @@ namespace Shiboken { -inline bool Converter<QStringList>::isConvertible(PyObject* pyObj) -{ - return StdListConverter<QStringList>::isConvertible(pyObj); -} - -inline QStringList Converter<QStringList>::toCpp(PyObject* pyObj) -{ - return StdListConverter<QStringList>::toCpp(pyObj); -} - -inline PyObject* Converter<QStringList>::toPython(const QStringList& cppObj) -{ - return ValueTypeConverter<QStringList>::toPython(cppObj); -} +template<> +struct Converter<QStringList> : StdListConverter<QStringList> {}; } diff --git a/PySide/QtCore/qstringref_conversions.h b/PySide/QtCore/qstringref_conversions.h new file mode 100644 index 000000000..11e1b9c62 --- /dev/null +++ b/PySide/QtCore/qstringref_conversions.h @@ -0,0 +1,19 @@ +namespace Shiboken { + +template<> +struct Converter<QStringRef> : public Converter<QString> +{ + static PyObject* toPython(void* cppObj) { return toPython(*reinterpret_cast<QStringRef*>(cppObj)); } + + static PyObject* toPython(const QStringRef& cppObj) + { + const QString* str = cppObj.string(); + return Converter<QString>::toPython(*str); + } + + static QStringRef toCpp(PyObject* pyObj) + { + return QStringRef(); + } +}; +} diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index 8924fa4fb..56c8b3097 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -39,8 +39,15 @@ <rejection class="QFutureSynchronizer"/> <rejection class="QByteArray" function-name="contains"/> <rejection class="QRunnable"/> + <rejection class="QLatin1String" /> + <rejection class="QLatin1Char" /> + <rejection class="QStringMatcher" /> <rejection class="QSharedPointer"/> <rejection class="QWeakPointer"/> + <rejection class="std::string"/> + <rejection class="std::wstring"/> + <rejection class="QStdWString"/> + <rejection class="QByteRef"/> <rejection class="QChildEvent" field-name="c"/> <rejection class="QTimerEvent" field-name="id"/> <rejection class="QEvent" field-name="t"/> @@ -66,15 +73,6 @@ <!-- From Qt4.6 ^^^ --> <enum-type name="QXmlStreamReader::Error"/> <enum-type name="QXmlStreamReader::TokenType"/> - <enum-type name="QString::NormalizationForm" /> - <enum-type name="QString::SectionFlag" /> - <enum-type name="QString::SplitBehavior"/> - <enum-type name="QChar::Decomposition" /> - <enum-type name="QChar::Direction" /> - <enum-type name="QChar::Joining" /> - <enum-type name="QChar::SpecialCharacter" /> - <enum-type name="QChar::UnicodeVersion" /> - <enum-type name="QChar::CombiningClass" /> <enum-type name="QLineF::IntersectType" /> <enum-type name="QVariant::Type" /> <!-- From Qt4.6 --> @@ -111,8 +109,6 @@ <primitive-type name="qreal"/> <primitive-type name="float"/> <primitive-type name="qint64"/> - <primitive-type name="__int64"/> - <primitive-type name="unsigned __int64"/> <primitive-type name="unsigned long long"/> <primitive-type name="long long"/> <primitive-type name="qlonglong" target-lang-api-name="PyLong" /> @@ -134,8 +130,7 @@ <primitive-type name="long"/> <primitive-type name="unsigned long"/> <primitive-type name="WId"/> - <primitive-type name="Qt::HANDLE" target-lang-api-name="PyLong"/> - <primitive-type name="QByteRef"> + <primitive-type name="Qt::HANDLE" target-lang-api-name="PyLong"> <!-- FIXME APIExtractor or shiboken do not support multiple includes by primitive type --> <include file-name="QTextDocument" location="global"/> </primitive-type> @@ -145,9 +140,20 @@ <include file-name="QtConcurrentFilter" location="global"/> </primitive-type> - <primitive-type name="std::string"/> - <primitive-type name="std::wstring"/> - <primitive-type name="QStdWString"/> + <primitive-type name="QString"> + <include file-name="QString" location="global"/> + <conversion-rule file="qstring_conversions.h" /> + </primitive-type> + <container-type name="QStringList" type="list"> + <include file-name="QStringList" location="global"/> + <conversion-rule file="qstringlist_conversions.h" /> + </container-type> + <primitive-type name="QStringRef"> + <conversion-rule file="qstringref_conversions.h" /> + </primitive-type> + <primitive-type name="QChar"> + <conversion-rule file="qchar_conversions.h" /> + </primitive-type> <container-type name="QSet" type="set"> <conversion-rule file="qset_conversions.h"/> @@ -242,7 +248,6 @@ <rejection class="*" field-name="staticMetaObject"/> <!-- not support array in property --> <rejection class="QTextCodec::ConverterState" field-name="state_data"/> - <rejection class="QString" field-name="null"/> <rejection class="QVariant" field-name="handler"/> <rejection class="QUuid" field-name="data1"/> <rejection class="QUuid" field-name="data2"/> @@ -542,20 +547,6 @@ <rejection class="QVariant" function-name="setValue"/> <rejection class="QVariant" function-name="data"/> <rejection class="QVariant" function-name="constData"/> - <rejection class="QString" function-name="constData"/> - <rejection class="QString" function-name="constBegin"/> - <rejection class="QString" function-name="constEnd"/> - <rejection class="QString" function-name="begin"/> - <rejection class="QString" function-name="end"/> - <rejection class="QString" function-name="data"/> - <rejection class="QString" function-name="unicode"/> - <rejection class="QString" function-name="utf16"/> - <rejection class="QString" function-name="fromLatin1_helper"/> - <rejection class="QString" function-name="fromAscii_helper"/> - <rejection class="QString" function-name="toWCharArray"/> - <rejection class="QString" function-name="sprintf"/> - <rejection class="QString" function-name="vsprintf"/> - <rejection class="QString" function-name="fromStdWString"/> <rejection class="QStringRef" function-name="constData"/> <rejection class="QStringRef" function-name="data"/> <rejection class="QStringRef" function-name="unicode"/> @@ -699,7 +690,6 @@ <enum-type name="QDirIterator::IteratorFlag" flags="QDirIterator::IteratorFlags"/> <enum-type name="Qt::EventPriority"/> <enum-type name="Qt::MaskMode"/> - <enum-type name="QChar::Category" /> <enum-type name="QCryptographicHash::Algorithm"/> <enum-type name="QReadWriteLock::RecursionMode"/> <enum-type name="QtConcurrent::ReduceOption" flags="QtConcurrent::ReduceOptions"/> @@ -722,6 +712,8 @@ <!--signal/slot--> <inject-code class="target" position="end"> + Shiboken::TypeResolver::createValueTypeResolver<QString>("unicode"); + Shiboken::TypeResolver::createValueTypeResolver<QString>("str"); PySide::init(module); </inject-code> <inject-code class="native" position="beginning"> @@ -772,224 +764,6 @@ </modify-function> </object-type> - <value-type name="QString" hash-function="QStringCustomHashFunction"> - <extra-includes> - <include file-name="QTextCodec" location="global"/> - </extra-includes> - <conversion-rule file="qstring_conversions.h" /> - <modify-documentation xpath="/description/section[@id='initializing-a-string']/para[2]" /> - <modify-documentation xpath="/description/section[@id='initializing-a-string']/para[3]" /> - <!-- Custom hash function --> - <inject-code class="native" position="beginning" file="glue/qstring_hashfunc.cpp" /> - <!-- buffer protocol --> - <inject-code class="native" position="beginning" file="glue/qstring_bufferprotocol.cpp" /> - <inject-code class="target" position="end"> - #if PY_VERSION_HEX < 0x03000000 - Shiboken::SbkType<QString>()->tp_as_buffer = &SbkQStringBufferProc; - Shiboken::SbkType<QString>()->tp_flags |= Py_TPFLAGS_HAVE_GETCHARBUFFER; - #endif - </inject-code> - - <!-- the number(qlonglong) is enough for python --> - <modify-function signature="number(uint,int)" remove="all" /> - <modify-function signature="number(int,int)" remove="all" /> - <modify-function signature="number(ulong,int)" remove="all" /> - <modify-function signature="number(qlonglong,int)" remove="all" /> - <modify-function signature="number(qulonglong,int)" remove="all" /> - <modify-function signature="insert(int,const QChar*,int)" remove="all" /> - <modify-function signature="QString(const QChar*, int)" remove="all" /> - <modify-function signature="fromStdString(std::string)" remove="all"/> - <modify-function signature="toStdString()const" remove="all"/> - <modify-function signature="toStdWString()const" remove="all"/> - <modify-function signature="operator+=(char)" remove="all"/> - <modify-function signature="toUShort(bool*,int)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*,arg"/> - </inject-code> - </modify-function> - <modify-function signature="toDouble(bool*)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*"/> - </inject-code> - </modify-function> - <modify-function signature="toFloat(bool*)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*"/> - </inject-code> - </modify-function> - <modify-function signature="toInt(bool*,int)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*,arg"/> - </inject-code> - </modify-function> - <modify-function signature="toLong(bool*,int)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*,arg"/> - </inject-code> - </modify-function> - <modify-function signature="toLongLong(bool*,int)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*,arg"/> - </inject-code> - </modify-function> - <modify-function signature="toShort(bool*,int)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*,arg"/> - </inject-code> - </modify-function> - <modify-function signature="toUInt(bool*,int)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*,arg"/> - </inject-code> - </modify-function> - <modify-function signature="toULong(bool*,int)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*,arg"/> - </inject-code> - </modify-function> - <modify-function signature="toULongLong(bool*,int)const"> - <modify-argument index="1"> - <remove-argument/> - </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="fix_bool*,arg"/> - </inject-code> - </modify-function> - <modify-function signature="setUtf16(const ushort*,int)" remove="all" /> - <modify-function signature="fromUtf16(const ushort*,int)" remove="all" /> - <modify-function signature="fromRawData(const QChar*,int)" remove="all" /> - <modify-function signature="setUnicode(const QChar*,int)" remove="all" /> - <modify-function signature="fromUcs4(const uint*,int)" remove="all" /> - <modify-function signature="toUcs4()const" remove="all" /> - - <!-- Remove conflict signatures in python --> - <modify-function signature="arg(int, int, int, const QChar&) const" remove="all"/> - <modify-function signature="arg(qlonglong, int, int, const QChar&) const" remove="all"/> - <modify-function signature="arg(qulonglong, int, int, const QChar&) const" remove="all"/> - <modify-function signature="arg(short, int, int, const QChar&) const" remove="all"/> - <modify-function signature="arg(uint, int, int, const QChar&) const" remove="all"/> - <modify-function signature="arg(ulong, int, int, const QChar&) const" remove="all"/> - <modify-function signature="arg(ushort, int, int, const QChar&) const" remove="all"/> - <modify-function signature="arg(char, int, const QChar&) const" remove="all"/> - <modify-function signature="arg(QChar, int, const QChar&) const" remove="all"/> - - <add-function signature="__str__()" return-type="PyObject*"> - <inject-code class="target" position="beginning"> - QByteArray utf8 = %CPPSELF.toUtf8(); - %PYARG_0 = PyUnicode_DecodeUTF8(utf8.data(), utf8.count(), 0); - </inject-code> - </add-function> - <add-function signature="__len__"> - <inject-code class="target" position="beginning"> - return %CPPSELF.count(); - </inject-code> - </add-function> - <add-function signature="__getitem__"> - <inject-code class="target" position="beginning"> - if (_i < 0 || _i >= %CPPSELF.size()) { - PyErr_SetString(PyExc_IndexError, "index out of bounds"); - return 0; - } - return %CONVERTTOPYTHON[%TYPE](%CPPSELF.at(_i)); - </inject-code> - </add-function> - <add-function signature="__setitem__"> - <inject-code class="target" position="beginning"> - %CPPSELF.remove(_i, 1); - PyObject* args = Py_BuildValue("(nO)", _i, _value); - PyObject* result = SbkQStringFunc_insert(self, args); - Py_DECREF(args); - Py_XDECREF(result); - return !result ? -1 : 0; - </inject-code> - </add-function> - <add-function signature="__getslice__"> - <inject-code class="target" position="beginning"> - <insert-template name="get_slice"/> - </inject-code> - </add-function> - </value-type> - <value-type name="QLatin1String" /> - <value-type name="QStringRef"> - <modify-function signature="QStringRef(const QString*)" remove="all" /> - <modify-function signature="QStringRef(const QString*,int,int)" remove="all" /> - <modify-function signature="appendTo(QString*)const" remove="all" /> - <modify-function signature="operator=(const QString*)" remove="all" /> - </value-type> - <value-type name="QChar" hash-function="qHash"> - <conversion-rule file="qchar_conversions.h" /> - <modify-function signature="QChar(uchar)" remove="all"/> - <modify-function signature="QChar(short)" remove="all"/> - <modify-function signature="QChar(ushort)" remove="all"/> - <modify-function signature="QChar(uint)" remove="all"/> - <modify-function signature="QChar(char)" remove="all"/> - Implementation note: This constructor is a replacement for - QChar(char), as the char type check also catches numbers, - conflicting with QChar(int). - <add-function signature="QChar(PyString*)"> - <inject-code class="target" position="beginning"> - if (PyString_Size(%PYARG_1) == 1) { - char value = %CONVERTTOCPP[char](%PYARG_1); - %0 = new %TYPE(value); - } else { - PyErr_SetString(PyExc_TypeError, "expected string of size 1"); - } - </inject-code> - </add-function> - <modify-function signature="combiningClass(uint)" remove="all"/> - <modify-function signature="combiningClass(ushort)" remove="all"/> - <modify-function signature="decomposition(uint)" remove="all"/> - <modify-function signature="digitValue(uint)" remove="all"/> - <modify-function signature="digitValue(ushort)" remove="all"/> - <modify-function signature="mirroredChar(uint)" remove="all"/> - <modify-function signature="mirroredChar(ushort)" remove="all"/> - <modify-function signature="toCaseFolded(uint)" remove="all"/> - <modify-function signature="toCaseFolded(ushort)" remove="all"/> - <modify-function signature="toUpper(uint)" remove="all"/> - <modify-function signature="toUpper(ushort)" remove="all"/> - <modify-function signature="toLower(uint)" remove="all"/> - <modify-function signature="toLower(ushort)" remove="all"/> - <modify-function signature="toTitleCase(uint)" remove="all"/> - <modify-function signature="toTitleCase(ushort)" remove="all"/> - <modify-function signature="unicode()" remove="all"/> - <modify-function signature="category(uint)" remove="all"/> - <modify-function signature="category(ushort)" remove="all"/> - <modify-function signature="decompositionTag(uint)" remove="all"/> - <modify-function signature="direction(uint)" remove="all"/> - <modify-function signature="direction(ushort)" remove="all"/> - <modify-function signature="joining(uint)" remove="all"/> - <modify-function signature="joining(ushort)" remove="all"/> - <modify-function signature="unicodeVersion(uint)" remove="all"/> - <modify-function signature="unicodeVersion(ushort)" remove="all"/> - </value-type> - <value-type name="QLatin1Char" /> <value-type name="QBasicTimer"/> <value-type name="QByteArrayMatcher"/> <value-type name="QDate" hash-function="PySide::hash" > @@ -1062,7 +836,6 @@ <modify-function signature="rwidth()" remove="all" /> </value-type> - <value-type name="QStringMatcher"/> <value-type name="QTime" hash-function="PySide::hash"/> <value-type name="QPersistentModelIndex"> <modify-function signature="internalPointer()const" remove="all"/> @@ -1493,7 +1266,6 @@ <modify-function signature="QVariant(const QString&)"> <access modifier="private" /> </modify-function> - <modify-function signature="QVariant(const QLatin1String&)" remove="all"/> <modify-function signature="QVariant(const QStringList&)" remove="all"/> <modify-function signature="QVariant(const QChar&)"> <access modifier="private" /> @@ -1635,75 +1407,6 @@ </inject-code> </modify-function> </value-type> - <value-type name="QStringList"> - <conversion-rule file="qstringlist_conversions.h"/> - <modify-function signature="fromVector(QVector<QString>)" remove="all" /> - <add-function signature="__len__"> - <inject-code class="target" position="beginning"> - return %CPPSELF.count(); - </inject-code> - </add-function> - <add-function signature="__getitem__"> - <inject-code class="target" position="beginning"> - if (_i < 0 || _i >= %CPPSELF.size()) { - PyErr_SetString(PyExc_IndexError, "index out of bounds"); - return 0; - } - return %CONVERTTOPYTHON[QString](%CPPSELF.at(_i)); - </inject-code> - </add-function> - <add-function signature="__setitem__"> - <inject-code class="target" position="beginning"> - PyObject* args = Py_BuildValue("(nO)", _i, _value); - PyObject* result = SbkQStringListFunc_replace(self, args); - Py_DECREF(args); - Py_XDECREF(result); - return !result ? -1 : 0; - </inject-code> - </add-function> - <add-function signature="__getslice__"> - <inject-code class="target" position="beginning"> - <insert-template name="get_slice"/> - </inject-code> - </add-function> - <add-function signature="__setslice__"> - <inject-code class="target" position="beginning"> - <!-- - PyObject* result = 0; - Py_ssize_t start, end; - Py_ssize_t len = %CPPSELF->count(); - - if (_i1 > len) - start = len; - else if (_i1 < 0) - start = 0; - else - start = _i1; - - if (_i2 > len) - end = len; - else if (_i2 < 0) - end = 0; - else - end = _i2; - - if (start < end) { - Py_ssize_t i; - for (Py_ssize_t i = _value->count(); i > -1; i++) { - PyObject* args = Py_BuildValue("(nO)", start, %CPPSELF->at(i)); - result = SbkQStringList_insert(self, args); - Py_XDECREF(args); - Py_XDECREF(result); - } - for (i = start; i < end; i++) - SbkQStringList_removeAt(self, Py_BuildValue("(n)", i)); - } - return !result ? -1 : 0; - --> - return 0; - </inject-code> - </add-function> - </value-type> <object-type name="QAbstractListModel" polymorphic-id-expression="qobject_cast<QAbstractListModel*>(%1)"> <extra-includes> <include file-name="QStringList" location="global"/> @@ -1759,9 +1462,7 @@ <modify-function signature="operator const void *()const" remove="all"/> <modify-function signature="operator+=(const char*)" remove="all"/> <modify-function signature="operator=(const char*)" remove="all"/> - <modify-function signature="operator[](int)" remove="all"/> <modify-function signature="operator[](int)const" remove="all"/> - <modify-function signature="operator[](uint)" remove="all"/> <modify-function signature="operator[](uint)const" remove="all"/> <modify-function signature="push_back(char)" remove="all"/> <modify-function signature="push_back(const QByteArray&)" remove="all"/> @@ -2134,15 +1835,12 @@ </modify-function> </object-type> <object-type name="QTextDecoder"> - <modify-function signature="toUnicode(const char*,int)"> - <remove/> - </modify-function> - <modify-function signature="toUnicode(QString*,const char*,int)" remove="all"/> + <modify-function signature="toUnicode(const char*,int)" remove="all" /> + <!-- Removed because it expect QString to be mutable --> + <modify-function signature="toUnicode(QString*,const char*,int)" remove="all" /> </object-type> <object-type name="QTextEncoder"> - <modify-function signature="fromUnicode(const QChar*,int)"> - <remove/> - </modify-function> + <modify-function signature="fromUnicode(const QChar*,int)" remove="all" /> </object-type> <object-type name="QTimeLine"/> <object-type name="QTranslator"> @@ -2506,7 +2204,10 @@ <modify-function signature="exec(QTextStream &)" rename="exec_"/> </value-type> <object-type name="QTextStream" stream="yes"> + <!-- Removed because it expect QString to be mutable --> + <modify-function signature="QTextStream(QString*,QFlags<QIODevice::OpenModeFlag>)" /> <modify-function signature="QTextStream(const QByteArray&, QFlags<QIODevice::OpenModeFlag>)" remove="all"/> + <!-- Removed because it expect QString to be mutable --> <modify-function signature="setString(QString*,QFlags<QIODevice::OpenModeFlag>)" remove="all"/> <modify-function signature="operator<<(const void*)" remove="all"/> @@ -2526,6 +2227,11 @@ <modify-function signature="operator>>(signed short&)" remove="all"/> <modify-function signature="operator>>(unsigned int&)" remove="all"/> <modify-function signature="operator>>(unsigned short&)" remove="all"/> + <!-- Removed because it expect QChar to be mutable --> + <modify-function signature="operator>>(QChar&)" remove="all"/> + <!-- Removed because it expect QString to be mutable --> + <modify-function signature="operator>>(QString&)" remove="all"/> + <modify-function signature="flush()" allow-thread="yes"/> <modify-function signature="read(qint64)" allow-thread="yes"/> @@ -2553,10 +2259,6 @@ <modify-function signature="mid(int, int) const" remove="all"/> <modify-function signature="toList() const" remove="all"/> <modify-function signature="fromList(const QList<QXmlStreamAttribute> &)" remove="all"/> - <modify-function signature="value(const QString &, const QLatin1String &)const" remove="all" /> - <modify-function signature="value(const QLatin1String &, const QLatin1String &)const" remove="all" /> - <modify-function signature="value(const QLatin1String &)const" remove="all" /> - <modify-function signature="hasAttribute(const QLatin1String &)const" remove="all" /> </value-type> <value-type name="QXmlStreamNamespaceDeclaration"/> <value-type name="QXmlStreamNotationDeclaration"/> @@ -2566,6 +2268,7 @@ <modify-function signature="addData(const char*)" remove="all"/> </object-type> <object-type name="QXmlStreamWriter"> + <!-- Removed because it expect QString to be mutable --> <modify-function signature="QXmlStreamWriter(QString *)" remove="all" /> <modify-function signature="codec()const" remove="all"/> </object-type> |