diff options
Diffstat (limited to 'PySide/QtCore/typesystem_core.xml')
-rw-r--r-- | PySide/QtCore/typesystem_core.xml | 230 |
1 files changed, 215 insertions, 15 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index 9d36c3f8a..9b95f6d7b 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -671,6 +671,14 @@ </extra-includes> </object-type> <value-type name="QLine" hash-function="PySide::hash"> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(iiii)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x1(), %CPPSELF.y1(), %CPPSELF.x2(), %CPPSELF.y2()" /> + </insert-template> + </inject-code> + </add-function> <inject-code class="native" position="beginning"> namespace PySide { template<> inline uint hash(const QLine& v) { @@ -681,6 +689,14 @@ </value-type> <value-type name="QLineF"> <enum-type name="IntersectType" /> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(dddd)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x1(), %CPPSELF.y1(), %CPPSELF.x2(), %CPPSELF.y2()" /> + </insert-template> + </inject-code> + </add-function> <modify-function signature="intersect(QLineF, QPointF*)const"> <modify-argument index="2"> <remove-argument /> @@ -726,7 +742,14 @@ <include file-name="datetime.h" location="global"/> </extra-includes> <enum-type name="MonthNameType"/> - <modify-function signature="julianToGregorian(uint,int&,int&,int&)" remove="all"/> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(iii)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.year(), %CPPSELF.month(), %CPPSELF.day()" /> + </insert-template> + </inject-code> + </add-function> <modify-function signature="getDate(int*,int*,int*)" > <modify-argument index="1"> <remove-argument/> @@ -759,22 +782,56 @@ %PYARG_0 = Shiboken::makeTuple(week, yearNumber); </inject-code> </modify-function> + <modify-function signature="julianToGregorian(uint,int&,int&,int&)" remove="all"/> </value-type> - <value-type name="QDateTime" hash-function="PySide::hash"> <conversion-rule class="target" file="qdatetime_conversions.h"/> <extra-includes> <include file-name="datetime.h" location="global"/> </extra-includes> + <!-- Somewhat internal constructor used to pickle QDateTime --> + <add-function signature="QDateTime(int, int, int, int, int, int, int, int)"> + <modify-argument index="8"> + <replace-default-expression with="Qt::LocalTime"/> + </modify-argument> + <inject-code class="target" position="beginning"> + QDate date(%1, %2, %3); + QTime time(%4, %5, %6, %7); + %0 = new %TYPE(date, time, Qt::TimeSpec(%8)); + </inject-code> + </add-function> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(iiiiiiii)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.date().year(), %CPPSELF.date().month(), %CPPSELF.date().day(), %CPPSELF.time().hour(), %CPPSELF.time().minute(), %CPPSELF.time().second(), %CPPSELF.time().msec(), (int)%CPPSELF.timeSpec()" /> + </insert-template> + </inject-code> + </add-function> </value-type> - <value-type name="QDir"> <enum-type name="Filter" flags="QDir::Filters"/> <enum-type name="SortFlag" flags="QDir::SortFlags" /> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(s)" /> + <replace from="%REDUCE_ARGS" to="qPrintable(%CPPSELF.path())" /> + </insert-template> + </inject-code> + </add-function> <modify-function signature="QDir(QString,QString,QFlags<QDir::SortFlag>,QFlags<QDir::Filter>)" remove="all" /> </value-type> <value-type name="QPoint" hash-function="PySide::hash"> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(ii)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y()" /> + </insert-template> + </inject-code> + </add-function> <inject-code class="native" position="beginning"> namespace PySide { template<> inline uint hash(const QPoint& v) { @@ -786,10 +843,26 @@ <modify-function signature="ry()" remove="all"/> </value-type> <value-type name="QPointF"> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(dd)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y()" /> + </insert-template> + </inject-code> + </add-function> <modify-function signature="rx()" remove="all"/> <modify-function signature="ry()" remove="all"/> </value-type> <value-type name="QRect" hash-function="PySide::hash"> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(iiii)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.width(), %CPPSELF.height()" /> + </insert-template> + </inject-code> + </add-function> <inject-code class="native" position="beginning"> namespace PySide { template<> inline uint hash(const QRect& v) { @@ -805,15 +878,30 @@ </modify-function> </value-type> <value-type name="QRectF"> - <modify-function signature="getCoords(qreal*,qreal*,qreal*,qreal*)const"> - <remove/> - </modify-function> - <modify-function signature="getRect(qreal*,qreal*,qreal*,qreal*)const"> - <remove/> - </modify-function> + <!-- + FIXME These functions return qreal. Will convert to double (format + string) mess things up in other architectures? + --> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(dddd)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.width(), %CPPSELF.height()" /> + </insert-template> + </inject-code> + </add-function> + <modify-function signature="getCoords(qreal*,qreal*,qreal*,qreal*)const" remove="all" /> + <modify-function signature="getRect(qreal*,qreal*,qreal*,qreal*)const" remove="all" /> </value-type> - <value-type name="QSize" hash-function="PySide::hash"> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(ii)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.width(), %CPPSELF.height()" /> + </insert-template> + </inject-code> + </add-function> <inject-code class="native" position="beginning"> namespace PySide { template<> inline uint hash(const QSize& v) { @@ -825,11 +913,27 @@ <modify-function signature="rwidth()" remove="all"/> </value-type> <value-type name="QSizeF"> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(dd)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.width(), %CPPSELF.height()" /> + </insert-template> + </inject-code> + </add-function> <modify-function signature="rheight()" remove="all" /> <modify-function signature="rwidth()" remove="all" /> </value-type> <value-type name="QTime" hash-function="PySide::hash"> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(iiii)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.hour(), %CPPSELF.minute(), %CPPSELF.second(), %CPPSELF.msec()" /> + </insert-template> + </inject-code> + </add-function> <conversion-rule class="target" file="qtime_conversions.h"/> <extra-includes> <include file-name="datetime.h" location="global"/> @@ -842,6 +946,14 @@ <value-type name="QUuid"> <enum-type name="Variant"/> <enum-type name="Version"/> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(s)" /> + <replace from="%REDUCE_ARGS" to="qPrintable(%CPPSELF.toString())" /> + </insert-template> + </inject-code> + </add-function> <modify-function signature="QUuid(const char*)" remove="all" /> </value-type> @@ -937,7 +1049,7 @@ </modify-function> </value-type> <value-type name="QBitArray" hash-function="qHash" > - <modify-function signature="fill(bool,int)" remove="all"/> <!-- FIXME Removed due to a shiboken bug--> + <modify-function signature="fill(bool,int)" remove="all"/> <!-- FIXME Removed due to a shiboken bug--> <add-function signature="__len__"> <inject-code class="target" position="beginning"> return %CPPSELF.size(); @@ -1165,6 +1277,9 @@ <modify-argument index="return"> <parent index="this" action="add"/> </modify-argument> + <modify-argument index="2"> + <replace-default-expression with="QString()" /> + </modify-argument> </add-function> <add-function signature="findChildren(PyTypeObject*, const QString&)" return-type="PySequence*" > <inject-code class="target" position="beginning"> @@ -1262,6 +1377,14 @@ <extra-includes> <include file-name="QStringList" location="global"/> </extra-includes> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(s)" /> + <replace from="%REDUCE_ARGS" to="qPrintable(%CPPSELF.toString())" /> + </insert-template> + </inject-code> + </add-function> </value-type> <value-type name="QRegExp"> <enum-type name="CaretMode"/> @@ -1269,17 +1392,41 @@ <extra-includes> <include file-name="QStringList" location="global"/> </extra-includes> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(sii)" /> + <replace from="%REDUCE_ARGS" to="qPrintable(%CPPSELF.pattern()), (int)%CPPSELF.caseSensitivity(), (int)%CPPSELF.patternSyntax()" /> + </insert-template> + </inject-code> + </add-function> </value-type> <value-type name="QFileInfo"> <extra-includes> <include file-name="QDateTime" location="global"/> <include file-name="QDir" location="global"/> </extra-includes> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(s)" /> + <replace from="%REDUCE_ARGS" to="qPrintable(%CPPSELF.filePath())" /> + </insert-template> + </inject-code> + </add-function> </value-type> <value-type name="QByteArray" hash-function="qHash"> <extra-includes> <include file-name="QNoImplicitBoolCast" location="global"/> </extra-includes> + <add-function signature="__reduce__" return-type="PyObject*"> + <inject-code class="target" position="beginning"> + <insert-template name="reduce_code"> + <replace from="%REDUCE_FORMAT" to="(s)" /> + <replace from="%REDUCE_ARGS" to="%CPPSELF.constData()" /> + </insert-template> + </inject-code> + </add-function> <modify-function signature="QByteArray(const char *)"> <!-- Keep \x00 bytes passed in python strings --> <inject-code class="target" position="beginning"> @@ -1295,6 +1442,7 @@ Shiboken::SbkType<QByteArray>()->tp_flags |= Py_TPFLAGS_HAVE_GETCHARBUFFER; #endif </inject-code> + <!-- removed functions --> <modify-function signature="begin()" remove="all"/> <modify-function signature="begin()const" remove="all"/> @@ -1619,8 +1767,6 @@ <modify-function signature="waitForBytesWritten(int)" allow-thread="yes"/> <modify-function signature="peek(char *,qint64)" remove="all"/> <modify-function signature="read(char *,qint64)" remove="all"/> -<!-- Needed by QNetworkReply class on QtNetwork module --> -<!-- <modify-function signature="readData(char *,qint64)" remove="all"/> --> <modify-function signature="readLine(char *,qint64)" remove="all"/> <modify-function signature="write(const char *,qint64)" remove="all"/> <modify-function signature="getChar(char *)"> @@ -1632,6 +1778,44 @@ <insert-template name="fix_char*" /> </inject-code> </modify-function> + <modify-function signature="readData(char *,qint64)"> + <inject-code class="target"> + QByteArray ba; + ba.resize(%2); + %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); + %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); + </inject-code> + <modify-argument index="1"> + <remove-argument /> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="QByteArray"/> + <conversion-rule class="native"> + const QByteArray ba(%CONVERTTOCPP[QByteArray](%PYARG_0)); + memcpy(data, ba.data(), ba.size()); + long long %out = ba.size(); + </conversion-rule> + </modify-argument> + </modify-function> + <modify-function signature="readLineData(char *,qint64)"> + <inject-code class="target"> + QByteArray ba; + ba.resize(%2); + %CPPSELF.%FUNCTION_NAME(ba.data(), ba.size()); + %PYARG_0 = %CONVERTTOPYTHON[QByteArray](ba); + </inject-code> + <modify-argument index="1"> + <remove-argument /> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="QByteArray"/> + <conversion-rule class="native"> + const QByteArray ba(%CONVERTTOCPP[QByteArray](%PYARG_0)); + memcpy(data, ba.data(), ba.size()); + long long %out = ba.size(); + </conversion-rule> + </modify-argument> + </modify-function> </object-type> <object-type name="QCryptographicHash"> <enum-type name="Algorithm"/> @@ -2442,7 +2626,24 @@ <object-type name="QSequentialAnimationGroup"/> - <object-type name="QSignalTransition"/> + <object-type name="QSignalTransition"> + <add-function signature="QSignalTransition(PyObject*, QState*)" return-type="QSignalTransition*"> + <modify-argument index="2"> + <replace-default-expression with="0" /> + </modify-argument> + <inject-code> + if (PyObject_TypeCheck(%1, &PySide::SignalInstance_Type)) { + PySide::SignalInstanceData* data = (PySide::SignalInstanceData*) %PYARG_1; + Shiboken::AutoDecRef obType(PyObject_Type(data->source)); + QObject* sender = %CONVERTTOCPP[QObject*](data->source); + if (sender) { + QByteArray signature(data->signature); // Append SIGNAL flag (2) + %0 = new QSignalTransitionWrapper(sender, "2" + signature, %2); + } + } + </inject-code> + </add-function> + </object-type> <object-type name="QState"> <enum-type name="ChildMode"/> @@ -2465,7 +2666,6 @@ } </inject-code> </modify-function> - <modify-function signature="addTransition(QAbstractState*)"> <modify-argument index="1"> <parent index="this" action="add"/> |