diff options
author | Lauro Neto <lauro.neto@openbossa.org> | 2010-02-18 17:38:37 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-02-19 16:46:16 -0300 |
commit | 53b60c6b11ebbce26c0257a32271414ab433be0d (patch) | |
tree | 80c0125c36b70efb5adc5c42eb10d023ef02a44b /PySide/QtGui | |
parent | ce0b964def33eac6589591666438bb7bfab122e9 (diff) |
Update QFontMetrics(f) tabArray handling
Instead of expecting a value, tabArray is used to pass
an array of ints to C++. This commit uses libshiboken
sequenceToIntArray function to build the array.
Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'PySide/QtGui')
-rw-r--r-- | PySide/QtGui/typesystem_gui_common.xml | 146 |
1 files changed, 106 insertions, 40 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml index 379dd8d98..fb1490872 100644 --- a/PySide/QtGui/typesystem_gui_common.xml +++ b/PySide/QtGui/typesystem_gui_common.xml @@ -972,31 +972,57 @@ <modify-function signature="boundingRect(QRectF,int,QString,int,int*)const"> <modify-argument index="5"> - <remove-argument /> - <remove-default-expression /> - </modify-argument> - <modify-argument index="return"> - <replace-type modified-type="PyTuple" /> + <replace-type modified-type="PyObject"/> </modify-argument> <inject-code class="target" position="beginning"> - <insert-template name="fix_return_args,int*"> - <replace from="RETURNTYPE" to="QRectF" /> - </insert-template> + int* array = NULL; + bool errorOccurred = false; + + if (numArgs == 5) { + array = Shiboken::sequenceToIntArray(%PYARG_5, true); + if (PyErr_Occurred()) { + if (array) + delete array; + errorOccurred = true; + } + } + + if (!errorOccurred) { + %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, array); + + if (array) + delete array; + + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); + } </inject-code> </modify-function> <modify-function signature="size(int,QString,int,int*)const"> <modify-argument index="4"> - <remove-argument /> - <remove-default-expression /> - </modify-argument> - <modify-argument index="return"> - <replace-type modified-type="PyTuple" /> + <replace-type modified-type="PyObject"/> </modify-argument> <inject-code class="target" position="beginning"> - <insert-template name="fix_return_args,int*"> - <replace from="RETURNTYPE" to="QSizeF" /> - </insert-template> + int* array = NULL; + bool errorOccurred = false; + + if (numArgs == 4) { + array = Shiboken::sequenceToIntArray(%PYARG_4, true); + if (PyErr_Occurred()) { + if (array) + delete array; + errorOccurred = true; + } + } + + if (!errorOccurred) { + %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, array); + + if (array) + delete array; + + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); + } </inject-code> </modify-function> @@ -1007,46 +1033,86 @@ <value-type name="QFontMetrics" > <modify-function signature="boundingRect(int,int,int,int,int,QString,int,int*)const"> <modify-argument index="8"> - <remove-argument /> - <remove-default-expression /> - </modify-argument> - <modify-argument index="return"> - <replace-type modified-type="PyTuple" /> + <replace-type modified-type="PyObject"/> </modify-argument> <inject-code class="target" position="beginning"> - <insert-template name="fix_return_args,int*"> - <replace from="RETURNTYPE" to="QRect" /> - </insert-template> + int* array = NULL; + bool errorOccurred = false; + + if (numArgs == 8) { + array = Shiboken::sequenceToIntArray(%PYARG_8, true); + if (PyErr_Occurred()) { + if (array) + delete array; + errorOccurred = true; + } + } + + if (!errorOccurred) { + %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, %5, %6, %7, array); + + if (array) + delete array; + + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); + } </inject-code> </modify-function> <modify-function signature="boundingRect(QRect,int,QString,int,int*)const"> <modify-argument index="5"> - <remove-argument /> - <remove-default-expression /> - </modify-argument> - <modify-argument index="return"> - <replace-type modified-type="PyTuple" /> + <replace-type modified-type="PyObject"/> </modify-argument> <inject-code class="target" position="beginning"> - <insert-template name="fix_return_args,int*"> - <replace from="RETURNTYPE" to="QRect" /> - </insert-template> + int* array = NULL; + bool errorOccurred = false; + + if (numArgs == 5) { + array = Shiboken::sequenceToIntArray(%PYARG_5, true); + if (PyErr_Occurred()) { + if (array) + delete array; + errorOccurred = true; + } + } + + if (!errorOccurred) { + %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, array); + + if (array) + delete array; + + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); + } </inject-code> </modify-function> <modify-function signature="size(int,QString,int,int*)const"> <modify-argument index="4"> - <remove-argument /> - <remove-default-expression /> - </modify-argument> - <modify-argument index="return"> - <replace-type modified-type="PyTuple" /> + <replace-type modified-type="PyObject"/> </modify-argument> <inject-code class="target" position="beginning"> - <insert-template name="fix_return_args,int*"> - <replace from="RETURNTYPE" to="QSize" /> - </insert-template> + int* array = NULL; + bool errorOccurred = false; + + if (numArgs == 4) { + array = Shiboken::sequenceToIntArray(%PYARG_4, true); + if (PyErr_Occurred()) { + if (array) + delete array; + errorOccurred = true; + } + } + + if (!errorOccurred) { + %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, array); + + if (array) + delete array; + + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); + } + </inject-code> </modify-function> |