aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtGui/glue/qmenu_glue.h
blob: 9d10d7addb045d86fb74788f17ff8eaa6652cf3e (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);
    PyObject* result = PyObject_CallMethod(pyAct, "connect", "OsO", pyAct, SIGNAL(triggered(bool)), callback);
    if (result == 0) {
        Py_DECREF(pyAct);
        return 0;
    }

    return pyAct;
}