aboutsummaryrefslogtreecommitdiffstats
path: root/PySide
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-04-06 21:25:50 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:07 -0300
commit77be0fc1a7927022347104162b4bd42f0cbb01a8 (patch)
tree21ba54d8df53b25d6089dadd5702e9442764f0f5 /PySide
parentf1b3580d577a20a3b317dae42583652248141f6a (diff)
Fixes bugs 739 and 752.
Bug #739 - Method "QTransform::map(qreal x, qreal y, qreal* tx, qreal* ty) const" missing Bug #752 - Method "void QSplitter::getRange(int index, int* min, int* max) const" missing Also added unit tests.
Diffstat (limited to 'PySide')
-rw-r--r--PySide/QtGui/typesystem_gui_common.xml36
-rw-r--r--PySide/typesystem_templates.xml8
2 files changed, 40 insertions, 4 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml
index f928d5ee5..a5089bc75 100644
--- a/PySide/QtGui/typesystem_gui_common.xml
+++ b/PySide/QtGui/typesystem_gui_common.xml
@@ -193,8 +193,22 @@
</inject-code>
</add-function>
- <!-- ### See bug 739 -->
- <modify-function signature="map(qreal,qreal,qreal*,qreal*)const" remove="all"/>
+ <modify-function signature="map(qreal,qreal,qreal*,qreal*)const">
+ <modify-argument index="0">
+ <replace-type modified-type="PyObject" />
+ </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_args,number*,number*">
+ <replace from="$TYPE" to="qreal" />
+ </insert-template>
+ </inject-code>
+ </modify-function>
<!-- ### This is just an overload to "map(qreal,qreal,qreal*,qreal*)const" and can be discarded in Python -->
<modify-function signature="map(int,int,int*,int*)const" remove="all"/>
<!-- ### -->
@@ -4550,8 +4564,22 @@
<modify-function signature="print(QPrinter*)const" rename="print_" />
</object-type>
<object-type name="QSplitter">
- <!-- ### See bug 752 -->
- <modify-function signature="getRange(int,int*,int*)const" remove="all" />
+ <modify-function signature="getRange(int,int*,int*)const">
+ <modify-argument index="0">
+ <replace-type modified-type="PyObject" />
+ </modify-argument>
+ <modify-argument index="2">
+ <remove-argument/>
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument/>
+ </modify-argument>
+ <inject-code class="target" position="beginning">
+ <insert-template name="fix_args,number*,number*">
+ <replace from="$TYPE" to="int" />
+ </insert-template>
+ </inject-code>
+ </modify-function>
<modify-function signature="addWidget(QWidget *)">
<modify-argument index="1">
<parent index="this" action="add"/>
diff --git a/PySide/typesystem_templates.xml b/PySide/typesystem_templates.xml
index 51ba3742e..ed0d6bdc9 100644
--- a/PySide/typesystem_templates.xml
+++ b/PySide/typesystem_templates.xml
@@ -196,6 +196,14 @@
%PYARG_0 = Shiboken::makeTuple(_ret, _arg);
</template>
+ <template name="fix_args,number*,number*">
+ $TYPE a, b;
+ PyThreadState* _save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS
+ %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;a, &amp;b);
+ PyEval_RestoreThread(_save); // Py_END_ALLOW_THREADS
+ %PYARG_0 = Shiboken::makeTuple(a, b);
+ </template>
+
<template name="fix_virtual_method_return_value_and_bool*">
Shiboken::AutoDecRef _py_ret_(PySequence_GetItem(%PYARG_0, 0));
Shiboken::AutoDecRef _py_ok_(PySequence_GetItem(%PYARG_0, 1));