summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Araujo Oliveira Filho <renato.filho@openbossa.org>2011-02-09 18:24:26 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:53:56 -0300
commit00f696e3c7305a9283932be00af6cb72f7268f3b (patch)
tree626929cba2845268d7b8f1224b97de5dd79cab0e
parentefad1c8b8cd10ad43207610ca7837308f4c024da (diff)
Fixed function 'QToolBar.addAction' to support callback in the
arguments. Create unit test for bug #635. Fixes bug #635. Reviewer: Luciano Wolf <luciano.wolf@openbossa.org> Hugo Parente Lima <hugo.pl@gmail.com>
-rw-r--r--PySide/QtGui/typesystem_gui_common.xml26
-rw-r--r--tests/QtGui/CMakeLists.txt1
-rw-r--r--tests/QtGui/bug_635.py28
3 files changed, 53 insertions, 2 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml
index 737db789..21dc5d3c 100644
--- a/PySide/QtGui/typesystem_gui_common.xml
+++ b/PySide/QtGui/typesystem_gui_common.xml
@@ -4531,8 +4531,30 @@
</modify-function>
</object-type>
<object-type name="QToolBar">
- <modify-function signature="addAction(QIcon,QString,const QObject*,const char*)" remove="all"/>
- <modify-function signature="addAction(QString,const QObject*,const char*)" remove="all"/>
+ <modify-function signature="addAction(QIcon,QString,const QObject*,const char*)">
+ <modify-argument index="3">
+ <replace-type modified-type="PyObject" />
+ </modify-argument>
+ <modify-argument index="4">
+ <remove-argument />
+ </modify-argument>
+ <inject-code>
+ %PYARG_0 = %CONVERTTOPYTHON[QAction*](%CPPSELF.addAction(%1, %2));
+ Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0, "connect", "OsO", %PYARG_0, SIGNAL(triggered()), %PYARG_3));
+ </inject-code>
+ </modify-function>
+ <modify-function signature="addAction(QString,const QObject*,const char*)">
+ <modify-argument index="2">
+ <replace-type modified-type="PyObject" />
+ </modify-argument>
+ <modify-argument index="3">
+ <remove-argument />
+ </modify-argument>
+ <inject-code>
+ %PYARG_0 = %CONVERTTOPYTHON[QAction*](%CPPSELF.addAction(%1));
+ Shiboken::AutoDecRef result(PyObject_CallMethod(%PYARG_0, "connect", "OsO", %PYARG_0, SIGNAL(triggered()), %PYARG_2));
+ </inject-code>
+ </modify-function>
<modify-function signature="addAction(const QString &amp;)">
<modify-argument index="return">
<parent index="this" action="add"/>
diff --git a/tests/QtGui/CMakeLists.txt b/tests/QtGui/CMakeLists.txt
index a2fd9dc6..c7505c27 100644
--- a/tests/QtGui/CMakeLists.txt
+++ b/tests/QtGui/CMakeLists.txt
@@ -31,6 +31,7 @@ PYSIDE_TEST(bug_576.py)
PYSIDE_TEST(bug_585.py)
PYSIDE_TEST(bug_589.py)
PYSIDE_TEST(bug_617.py)
+PYSIDE_TEST(bug_635.py)
PYSIDE_TEST(bug_640.py)
PYSIDE_TEST(bug_652.py)
PYSIDE_TEST(bug_653.py)
diff --git a/tests/QtGui/bug_635.py b/tests/QtGui/bug_635.py
new file mode 100644
index 00000000..5f483e51
--- /dev/null
+++ b/tests/QtGui/bug_635.py
@@ -0,0 +1,28 @@
+''' Test bug 635: http://bugs.openbossa.org/show_bug.cgi?id=635'''
+
+import unittest
+from PySide.QtGui import QApplication, QToolBar, QIcon
+import sys
+
+class testQToolBar(unittest.TestCase):
+ def callback(self):
+ self._called = True
+
+ def testAddAction(self):
+ bar = QToolBar()
+ self._called = False
+ a = bar.addAction("act1", self.callback)
+ a.trigger()
+ self.assert_(self._called)
+
+ def testAddActionWithIcon(self):
+ bar = QToolBar()
+ self._called = False
+ icon = QIcon()
+ a = bar.addAction(icon, "act1", self.callback)
+ a.trigger()
+ self.assert_(self._called)
+
+if __name__ == '__main__':
+ app = QApplication(sys.argv)
+ unittest.main()