aboutsummaryrefslogtreecommitdiffstats
path: root/PySide
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.lima@openbossa.org>2010-06-03 15:34:17 -0300
committerHugo Parente Lima <hugo.lima@openbossa.org>2010-06-10 14:57:41 -0300
commite39bfefde9edda662f51eeaf9a482f209c7f1217 (patch)
treea4add52f8ca3460fcaed99c6d9c7fc810f341a49 /PySide
parent24a944590663582df72aefd1929ec19ba3c6414f (diff)
Remove wrapper for classes: QString, QStringRef, QLatin1String, QStringMatcher, QChar and QLatin1Char.
Diffstat (limited to 'PySide')
-rw-r--r--PySide/QtCore/CMakeLists.txt7
-rw-r--r--PySide/QtCore/glue/qstring_bufferprotocol.cpp43
-rw-r--r--PySide/QtCore/glue/qstring_hashfunc.cpp6
-rw-r--r--PySide/QtCore/qchar_conversions.h42
-rw-r--r--PySide/QtCore/qstring_conversions.h124
-rw-r--r--PySide/QtCore/qstringlist_conversions.h16
-rw-r--r--PySide/QtCore/qstringref_conversions.h19
-rw-r--r--PySide/QtCore/typesystem_core.xml371
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&lt;QString>("unicode");
+ Shiboken::TypeResolver::createValueTypeResolver&lt;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 &lt; 0x03000000
- Shiboken::SbkType&lt;QString>()->tp_as_buffer = &amp;SbkQStringBufferProc;
- Shiboken::SbkType&lt;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&amp;) const" remove="all"/>
- <modify-function signature="arg(qlonglong, int, int, const QChar&amp;) const" remove="all"/>
- <modify-function signature="arg(qulonglong, int, int, const QChar&amp;) const" remove="all"/>
- <modify-function signature="arg(short, int, int, const QChar&amp;) const" remove="all"/>
- <modify-function signature="arg(uint, int, int, const QChar&amp;) const" remove="all"/>
- <modify-function signature="arg(ulong, int, int, const QChar&amp;) const" remove="all"/>
- <modify-function signature="arg(ushort, int, int, const QChar&amp;) const" remove="all"/>
- <modify-function signature="arg(char, int, const QChar&amp;) const" remove="all"/>
- <modify-function signature="arg(QChar, int, const QChar&amp;) 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 &lt; 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&amp;)">
<access modifier="private" />
</modify-function>
- <modify-function signature="QVariant(const QLatin1String&amp;)" remove="all"/>
<modify-function signature="QVariant(const QStringList&amp;)" remove="all"/>
<modify-function signature="QVariant(const QChar&amp;)">
<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&lt;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 &lt; 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 &gt; len)
- start = len;
- else if (_i1 &lt; 0)
- start = 0;
- else
- start = _i1;
-
- if (_i2 &gt; len)
- end = len;
- else if (_i2 &lt; 0)
- end = 0;
- else
- end = _i2;
-
- if (start &lt; end) {
- Py_ssize_t i;
- for (Py_ssize_t i = _value->count(); i &gt; -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 &lt; 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&lt;QAbstractListModel*&gt;(%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&amp;)" 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 &amp;)" rename="exec_"/>
</value-type>
<object-type name="QTextStream" stream="yes">
+ <!-- Removed because it expect QString to be mutable -->
+ <modify-function signature="QTextStream(QString*,QFlags&lt;QIODevice::OpenModeFlag&gt;)" />
<modify-function signature="QTextStream(const QByteArray&amp;, QFlags&lt;QIODevice::OpenModeFlag&gt;)" remove="all"/>
+ <!-- Removed because it expect QString to be mutable -->
<modify-function signature="setString(QString*,QFlags&lt;QIODevice::OpenModeFlag&gt;)" remove="all"/>
<modify-function signature="operator&lt;&lt;(const void*)" remove="all"/>
@@ -2526,6 +2227,11 @@
<modify-function signature="operator&gt;&gt;(signed short&amp;)" remove="all"/>
<modify-function signature="operator&gt;&gt;(unsigned int&amp;)" remove="all"/>
<modify-function signature="operator&gt;&gt;(unsigned short&amp;)" remove="all"/>
+ <!-- Removed because it expect QChar to be mutable -->
+ <modify-function signature="operator&gt;&gt;(QChar&amp;)" remove="all"/>
+ <!-- Removed because it expect QString to be mutable -->
+ <modify-function signature="operator&gt;&gt;(QString&amp;)" 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&lt;QXmlStreamAttribute&gt; &amp;)" remove="all"/>
- <modify-function signature="value(const QString &amp;, const QLatin1String &amp;)const" remove="all" />
- <modify-function signature="value(const QLatin1String &amp;, const QLatin1String &amp;)const" remove="all" />
- <modify-function signature="value(const QLatin1String &amp;)const" remove="all" />
- <modify-function signature="hasAttribute(const QLatin1String &amp;)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>