aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtGui/glue/qmenu_glue.cpp
blob: 0636dfab08685b55aff5fce9bdc5122196d23788 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
inline PyObject* addActionWithPyObject(QMenu* self, const QIcon& icon, const QString& text, PyObject* callback, const QKeySequence& shortcut)
{
    QAction* act = new QAction(text, self);

    if (!icon.isNull())
        act->setIcon(icon);

    if (!shortcut.isEmpty())
        act->setShortcut(shortcut);

    self->addAction(act);

    PyObject* pyAct = %CONVERTTOPYTHON[QAction*](act);
    Shiboken::AutoDecRef result(PyObject_CallMethod(pyAct, "connect", "OsO", pyAct, SIGNAL(triggered()), callback));
    if (result.isNull()) {
        Py_DECREF(pyAct);
        return 0;
    }

    return pyAct;
}