aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-04-06 22:23:36 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:07 -0300
commitcf905e46616b46e811925926a231bb8fa6e1ce12 (patch)
tree1bc8e291a2798b3dc2b008ea91d341deaad39437
parent77be0fc1a7927022347104162b4bd42f0cbb01a8 (diff)
Fixes bugs 746, 747 and 748.
Bug #746 - Method "QFormLayout::getLayoutPosition(QLayout*,int*,QFormLayout::ItemRole*)const" missing Bug #747 - Method "QFormLayout::getWidgetPosition(QWidget*,int*,QFormLayout::ItemRole*)const" missing Bug #748 - Method "QFormLayout::getItemPosition(int,int*,QFormLayout::ItemRole*)const" missing Also added unit tests.
-rw-r--r--PySide/QtGui/typesystem_gui_common.xml59
-rw-r--r--tests/QtGui/CMakeLists.txt1
-rw-r--r--tests/QtGui/qformlayout_test.py56
3 files changed, 108 insertions, 8 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml
index a5089bc75..ded4c720b 100644
--- a/PySide/QtGui/typesystem_gui_common.xml
+++ b/PySide/QtGui/typesystem_gui_common.xml
@@ -5121,11 +5121,57 @@
<enum-type name="ItemRole"/>
<enum-type name="RowWrapPolicy"/>
- <!-- ### See bug 746 -->
- <modify-function signature="getLayoutPosition(QLayout*,int*,QFormLayout::ItemRole*)const" remove="all" />
- <!-- ### See bug 747 -->
- <modify-function signature="getWidgetPosition(QWidget*,int*,QFormLayout::ItemRole*)const" remove="all" />
- <!-- ### -->
+ <template name="fix_args,int*,ItemRole*">
+ int _row;
+ QFormLayout::ItemRole _role;
+ PyThreadState* _save = PyEval_SaveThread(); // Py_BEGIN_ALLOW_THREADS
+ %CPPSELF->%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;_row, &amp;_role);
+ PyEval_RestoreThread(_save); // Py_END_ALLOW_THREADS
+ %PYARG_0 = Shiboken::makeTuple(_row, _role);
+ </template>
+
+ <modify-function signature="getLayoutPosition(QLayout*,int*,QFormLayout::ItemRole*)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,int*,ItemRole*"/>
+ </inject-code>
+ </modify-function>
+ <modify-function signature="getWidgetPosition(QWidget*,int*,QFormLayout::ItemRole*)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,int*,ItemRole*"/>
+ </inject-code>
+ </modify-function>
+ <modify-function signature="getItemPosition(int,int*,QFormLayout::ItemRole*)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,int*,ItemRole*"/>
+ </inject-code>
+ </modify-function>
<modify-function signature="addRow(QWidget*,QWidget*)">
<modify-argument index="1">
@@ -5209,9 +5255,6 @@
<parent index="this" action="add"/>
</modify-argument>
</modify-function>
- <!-- ### See bug 748 -->
- <modify-function signature="getItemPosition(int,int*,QFormLayout::ItemRole*)const" remove="all" />
- <!-- ### -->
<modify-function signature="setItem(int,QFormLayout::ItemRole,QLayoutItem*)">
<modify-argument index="3">
<parent index="this" action="add"/>
diff --git a/tests/QtGui/CMakeLists.txt b/tests/QtGui/CMakeLists.txt
index 515c2e235..bad917370 100644
--- a/tests/QtGui/CMakeLists.txt
+++ b/tests/QtGui/CMakeLists.txt
@@ -70,6 +70,7 @@ PYSIDE_TEST(qdatastream_gui_operators_test.py)
PYSIDE_TEST(qdynamic_signal.py)
PYSIDE_TEST(qfontdialog_test.py)
PYSIDE_TEST(qfontmetrics_test.py)
+PYSIDE_TEST(qformlayout_test.py)
PYSIDE_TEST(qgraphicsitem_isblocked_test.py)
PYSIDE_TEST(qgraphicsitem_test.py)
PYSIDE_TEST(qgraphicsproxywidget_test.py)
diff --git a/tests/QtGui/qformlayout_test.py b/tests/QtGui/qformlayout_test.py
new file mode 100644
index 000000000..b9bf3bf54
--- /dev/null
+++ b/tests/QtGui/qformlayout_test.py
@@ -0,0 +1,56 @@
+import unittest
+from PySide.QtGui import QFormLayout, QWidget
+
+from helper import UsesQApplication
+
+class QFormLayoutTest(UsesQApplication):
+
+ def testGetItemPosition(self):
+ formlayout = QFormLayout()
+ row, role = formlayout.getItemPosition(0)
+ self.assert_(isinstance(row, int))
+ self.assert_(isinstance(role, QFormLayout.ItemRole))
+ self.assertEqual(row, -1)
+
+ widget = QWidget()
+ formlayout.addRow(widget)
+ row, role = formlayout.getItemPosition(0)
+ self.assert_(isinstance(row, int))
+ self.assert_(isinstance(role, QFormLayout.ItemRole))
+ self.assertEqual(row, 0)
+ self.assertEqual(role, QFormLayout.SpanningRole)
+
+ def testGetWidgetPosition(self):
+ formlayout = QFormLayout()
+ widget = QWidget()
+ row, role = formlayout.getWidgetPosition(widget)
+ self.assert_(isinstance(row, int))
+ self.assert_(isinstance(role, QFormLayout.ItemRole))
+ self.assertEqual(row, -1)
+
+ formlayout.addRow(widget)
+ row, role = formlayout.getWidgetPosition(widget)
+ self.assert_(isinstance(row, int))
+ self.assert_(isinstance(role, QFormLayout.ItemRole))
+ self.assertEqual(row, 0)
+ self.assertEqual(role, QFormLayout.SpanningRole)
+
+ def testGetLayoutPosition(self):
+ formlayout = QFormLayout()
+ layout = QFormLayout()
+ row, role = formlayout.getLayoutPosition(layout)
+ self.assert_(isinstance(row, int))
+ self.assert_(isinstance(role, QFormLayout.ItemRole))
+ self.assertEqual(row, -1)
+
+ formlayout.addRow(layout)
+ row, role = formlayout.getLayoutPosition(layout)
+ self.assert_(isinstance(row, int))
+ self.assert_(isinstance(role, QFormLayout.ItemRole))
+ self.assertEqual(row, 0)
+ self.assertEqual(role, QFormLayout.SpanningRole)
+
+
+if __name__ == "__main__":
+ unittest.main()
+