aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtGui/glue/qmenu_glue.h
blob: 94eab15e016d3ffcc1ac7e40f83790f2adbef90a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

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 = Shiboken::Converter<QAction*>::toPython(act);
    Shiboken::AutoDecRef result(PyObject_CallMethod(pyAct, "connect", "OsO", pyAct, SIGNAL(triggered()), callback));
    if (result.isNull()) {
        Py_DECREF(pyAct);
        return 0;
    }

    return pyAct;
}