diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-04-06 22:23:36 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:07 -0300 |
commit | cf905e46616b46e811925926a231bb8fa6e1ce12 (patch) | |
tree | 1bc8e291a2798b3dc2b008ea91d341deaad39437 | |
parent | 77be0fc1a7927022347104162b4bd42f0cbb01a8 (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.xml | 59 | ||||
-rw-r--r-- | tests/QtGui/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtGui/qformlayout_test.py | 56 |
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, &_row, &_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() + |