aboutsummaryrefslogtreecommitdiffstats
path: root/PySide
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-04-06 20:51:04 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:07 -0300
commit8b1f0d192a8295b9aac9bfa876fba5674014b91d (patch)
tree2a0d37a3ee8b0c4e684957370a7e43f4fcaa9a69 /PySide
parent00f0ea88cfd1020ff3765597ca9525eb73a783b2 (diff)
Fixes bugs 744, 745, 756, 758 and 764.
Bug #744 - Method "void QGraphicsLayout::getContentsMargins(qreal*,qreal*,qreal*,qreal*) const" missing Bug #745 - Method "void QGraphicsLayoutItem::getContentsMargins(qreal*,qreal*,qreal*,qreal*) const" missing Bug #756 - Method "void QWidget::getContentsMargins(int*,int*,int*,int*) const" missing Bug #758 - Method "void QTextCursor::selectedTableCells(int*,int*,int*,int*) const" missing Bug #764 - Method "void QLayout::getContentsMargins(int*,int*,int*,int*) const" missing Also added unit tests.
Diffstat (limited to 'PySide')
-rw-r--r--PySide/QtGui/typesystem_gui_common.xml145
-rw-r--r--PySide/typesystem_templates.xml17
2 files changed, 152 insertions, 10 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml
index fa819f583..f928d5ee5 100644
--- a/PySide/QtGui/typesystem_gui_common.xml
+++ b/PySide/QtGui/typesystem_gui_common.xml
@@ -671,8 +671,33 @@
<enum-type name="MoveMode"/>
<enum-type name="MoveOperation"/>
<enum-type name="SelectionType"/>
- <!-- ### See bug 758 -->
- <modify-function signature="selectedTableCells(int*,int*,int*,int*)const" remove="all" />
+ <modify-function signature="selectedTableCells(int*,int*,int*,int*)const">
+ <modify-argument index="0">
+ <replace-type modified-type="PyObject" />
+ </modify-argument>
+ <modify-argument index="1">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="4">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_number*,number*,number*,number*">
+ <replace from="$TYPE" to="int" />
+ </insert-template>
+ </inject-code>
+ <inject-code class="native" position="end">
+ <insert-template name="fix_native_return_number*,number*,number*,number*">
+ <replace from="$TYPE" to="int" />
+ </insert-template>
+ </inject-code>
+ </modify-function>
<modify-function signature="currentFrame()const">
<modify-argument index="return">
<define-ownership class="target" owner="default"/>
@@ -2756,8 +2781,33 @@
</inject-code>
</modify-function>
- <!-- ### See bug 764 -->
- <modify-function signature="getContentsMargins(int*,int*,int*,int*)const" remove="all" />
+ <modify-function signature="getContentsMargins(int*,int*,int*,int*)const">
+ <modify-argument index="0">
+ <replace-type modified-type="PyObject" />
+ </modify-argument>
+ <modify-argument index="1">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="4">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_number*,number*,number*,number*">
+ <replace from="$TYPE" to="int" />
+ </insert-template>
+ </inject-code>
+ <inject-code class="native" position="end">
+ <insert-template name="fix_native_return_number*,number*,number*,number*">
+ <replace from="$TYPE" to="int" />
+ </insert-template>
+ </inject-code>
+ </modify-function>
<!-- ### Obsolete in 4.3 -->
<modify-function signature="setMargin(int)" remove="all"/>
<modify-function signature="margin()const" remove="all"/>
@@ -3716,8 +3766,33 @@
<define-ownership owner="c++"/>
</modify-argument>
</modify-function>
- <!-- ### See bug 756 -->
- <modify-function signature="getContentsMargins(int*,int*,int*,int*)const" remove="all" />
+ <modify-function signature="getContentsMargins(int*,int*,int*,int*)const">
+ <modify-argument index="0">
+ <replace-type modified-type="PyObject" />
+ </modify-argument>
+ <modify-argument index="1">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="4">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_number*,number*,number*,number*">
+ <replace from="$TYPE" to="int" />
+ </insert-template>
+ </inject-code>
+ <inject-code class="native" position="end">
+ <insert-template name="fix_native_return_number*,number*,number*,number*">
+ <replace from="$TYPE" to="int" />
+ </insert-template>
+ </inject-code>
+ </modify-function>
<modify-function signature="insertAction(QAction *, QAction *)">
<modify-argument index="2">
<parent index="this" action="add"/>
@@ -5133,15 +5208,65 @@
</modify-function>
</object-type>
<object-type name="QGraphicsLayout">
- <!-- ### See bug 744 -->
- <modify-function signature="getContentsMargins(qreal*,qreal*,qreal*,qreal*)const" remove="all" />
+ <modify-function signature="getContentsMargins(qreal*,qreal*,qreal*,qreal*)const">
+ <modify-argument index="0">
+ <replace-type modified-type="PyObject" />
+ </modify-argument>
+ <modify-argument index="1">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="4">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_number*,number*,number*,number*">
+ <replace from="$TYPE" to="qreal" />
+ </insert-template>
+ </inject-code>
+ <inject-code class="native" position="end">
+ <insert-template name="fix_native_return_number*,number*,number*,number*">
+ <replace from="$TYPE" to="qreal" />
+ </insert-template>
+ </inject-code>
+ </modify-function>
<modify-function signature="widgetEvent(QEvent*)">
<modify-argument index="1" invalidate-after-use="yes"/>
</modify-function>
</object-type>
<object-type name="QGraphicsLayoutItem" copyable="false">
- <!-- ### See bug 745 -->
- <modify-function signature="getContentsMargins(qreal*,qreal*,qreal*,qreal*)const" remove="all" />
+ <modify-function signature="getContentsMargins(qreal*,qreal*,qreal*,qreal*)const">
+ <modify-argument index="0">
+ <replace-type modified-type="PyObject" />
+ </modify-argument>
+ <modify-argument index="1">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="4">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_number*,number*,number*,number*">
+ <replace from="$TYPE" to="qreal" />
+ </insert-template>
+ </inject-code>
+ <inject-code class="native" position="end">
+ <insert-template name="fix_native_return_number*,number*,number*,number*">
+ <replace from="$TYPE" to="qreal" />
+ </insert-template>
+ </inject-code>
+ </modify-function>
<modify-function signature="setParentLayoutItem(QGraphicsLayoutItem*)">
<modify-argument index="1">
<parent index="this" action="add"/>
diff --git a/PySide/typesystem_templates.xml b/PySide/typesystem_templates.xml
index e42193e74..51ba3742e 100644
--- a/PySide/typesystem_templates.xml
+++ b/PySide/typesystem_templates.xml
@@ -150,6 +150,23 @@
%PYARG_0 = Shiboken::makeTuple(a, b, c, d);
</template>
+ <template name="fix_native_return_number*,number*,number*,number*">
+ PyObject* _obj = %PYARG_0.object();
+ if (!PySequence_Check(_obj)
+ || PySequence_Fast_GET_SIZE(_obj) != 4
+ || !SbkNumber_Check(PySequence_Fast_GET_ITEM(_obj, 0))
+ || !SbkNumber_Check(PySequence_Fast_GET_ITEM(_obj, 1))
+ || !SbkNumber_Check(PySequence_Fast_GET_ITEM(_obj, 2))
+ || !SbkNumber_Check(PySequence_Fast_GET_ITEM(_obj, 3))) {
+ PyErr_SetString(PyExc_TypeError, "Sequence of 4 numbers expected");
+ } else {
+ *%1 = %CONVERTTOCPP[$TYPE](PySequence_Fast_GET_ITEM(_obj, 0));
+ *%2 = %CONVERTTOCPP[$TYPE](PySequence_Fast_GET_ITEM(_obj, 1));
+ *%3 = %CONVERTTOCPP[$TYPE](PySequence_Fast_GET_ITEM(_obj, 2));
+ *%4 = %CONVERTTOCPP[$TYPE](PySequence_Fast_GET_ITEM(_obj, 3));
+ }
+ </template>
+
<template name="fix_int*,int*,int*,int*,int*">
int a, b, c, d, e;
PyThreadState* _save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS