aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtCore/typesystem_core.xml
diff options
context:
space:
mode:
Diffstat (limited to 'PySide/QtCore/typesystem_core.xml')
-rw-r--r--PySide/QtCore/typesystem_core.xml230
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&lt;&gt; inline uint hash(const QLine&amp; 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&amp;,int&amp;,int&amp;)" 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&amp;,int&amp;,int&amp;)" 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&lt;QDir::SortFlag>,QFlags&lt;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&lt;&gt; inline uint hash(const QPoint&amp; 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&lt;&gt; inline uint hash(const QRect&amp; 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&lt;&gt; inline uint hash(const QSize&amp; 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&amp;)" 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&lt;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, &amp;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"/>