diff options
author | Lauro Neto <lauro.neto@openbossa.org> | 2010-03-23 16:02:31 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-03-23 17:23:37 -0300 |
commit | e7ec7cf9d5e69f30552bcc79e891bf06cfdb3d16 (patch) | |
tree | bcefe6edfdd749f0a9a820f47a4d5c3cf8d4e0c9 /PySide | |
parent | 09d40d5b0e33019acaabe5bd66a3874ea103cab8 (diff) |
Updates QMenuBar type system and adds custom code for addAction method.
Diffstat (limited to 'PySide')
-rw-r--r-- | PySide/QtGui/glue/qmenubar_glue.h | 20 | ||||
-rw-r--r-- | PySide/QtGui/typesystem_gui_common.xml | 17 |
2 files changed, 36 insertions, 1 deletions
diff --git a/PySide/QtGui/glue/qmenubar_glue.h b/PySide/QtGui/glue/qmenubar_glue.h new file mode 100644 index 000000000..9568fa87c --- /dev/null +++ b/PySide/QtGui/glue/qmenubar_glue.h @@ -0,0 +1,20 @@ +inline PyObject* +addActionWithPyObject(QMenuBar* self, const QString& text, PyObject* callback) +{ + QAction* act = new QAction(text, self); + + self->addAction(act); + + PyObject* pyAct = Shiboken::Converter<QAction*>::toPython(act); + PyObject* result = PyObject_CallMethod(pyAct, "connect", "OsO", pyAct, + SIGNAL(triggered(bool)), callback); + + if (result == 0 || result == Py_False) { + if (result) + Py_DECREF(result); + Py_DECREF(pyAct); + return 0; + } + + return pyAct; +} diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml index 42293461a..08efe3db5 100644 --- a/PySide/QtGui/typesystem_gui_common.xml +++ b/PySide/QtGui/typesystem_gui_common.xml @@ -1797,12 +1797,27 @@ </object-type> <object-type name="QMenuBar"> + <extra-includes> + <include file-name="glue/qmenubar_glue.h" location="local"/> + </extra-includes> <modify-function signature="addAction(const QString&)"> <modify-argument index="return"> <parent index="this" action="add"/> </modify-argument> </modify-function> - <modify-function signature="addAction(QString,const QObject*,const char*)" remove="all"/> + <modify-function signature="addAction(QString,const QObject*,const char*)"> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </modify-function> + <add-function signature="addAction(const QString&, PyObject*)"> + <inject-code class="target" position="beginning"> + %PYARG_0 = addActionWithPyObject(%CPPSELF, %1, %2); + </inject-code> + <modify-argument index="return"> + <parent index="this" action="add"/> + </modify-argument> + </add-function> <modify-function signature="addMenu(QMenu*)"> <modify-argument index="return"> <parent index="1" action="add"/> |