diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-04-06 20:51:04 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:07 -0300 |
commit | 8b1f0d192a8295b9aac9bfa876fba5674014b91d (patch) | |
tree | 2a0d37a3ee8b0c4e684957370a7e43f4fcaa9a69 /PySide | |
parent | 00f0ea88cfd1020ff3765597ca9525eb73a783b2 (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.xml | 145 | ||||
-rw-r--r-- | PySide/typesystem_templates.xml | 17 |
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 |