diff options
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 |