diff options
-rw-r--r-- | PySide/QtGui/typesystem_gui_common.xml | 26 | ||||
-rw-r--r-- | tests/QtGui/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtGui/bug_635.py | 28 |
3 files changed, 53 insertions, 2 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml index 737db7894..21dc5d3cc 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 &)"> <modify-argument index="return"> <parent index="this" action="add"/> diff --git a/tests/QtGui/CMakeLists.txt b/tests/QtGui/CMakeLists.txt index a2fd9dc6e..c7505c272 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 000000000..5f483e51d --- /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() |