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

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;
}