From c6cb726c5694f8a35711a48a7bf5e2a6723aeba8 Mon Sep 17 00:00:00 2001 From: Nick Dedekind Date: Thu, 8 Aug 2013 16:12:57 +0100 Subject: Glib callbacks send events through qt. --- libqmenumodel/src/menunode.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'libqmenumodel/src/menunode.cpp') diff --git a/libqmenumodel/src/menunode.cpp b/libqmenumodel/src/menunode.cpp index ed9a984..10313d5 100644 --- a/libqmenumodel/src/menunode.cpp +++ b/libqmenumodel/src/menunode.cpp @@ -21,6 +21,9 @@ #include #include +#include + +const QEvent::Type MenuNodeItemChangeEvent::eventType = static_cast(QEvent::registerEventType()); MenuNode::MenuNode(const QString &linkType, GMenuModel *model, MenuNode *parent, int pos, QObject *listener) : m_model(model), @@ -242,15 +245,16 @@ void MenuNode::onItemsChanged(GMenuModel *model, gint position, gint removed, gi self->m_currentOpAdded = added; self->m_currentOpRemoved = removed; - const QMetaObject *mobj = self->m_listener->metaObject(); - if (!mobj->invokeMethod(self->m_listener, - "onItemsChanged", - Q_ARG(MenuNode*, self), - Q_ARG(int, position), - Q_ARG(int, removed), - Q_ARG(int, added))) - { - qWarning() << "Slot 'onItemsChanged(MenuNode*, int, int, int)' not found in" << self->m_listener; - } + MenuNodeItemChangeEvent mnice(self, position, added, removed); + QCoreApplication::sendEvent(self->m_listener, &mnice); + self->commitOperation(); } + +MenuNodeItemChangeEvent::MenuNodeItemChangeEvent(MenuNode* _node, int _position, int _removed, int _added) + : QEvent(MenuNodeItemChangeEvent::eventType), + node(_node), + position(_position), + removed(_removed), + added(_added) +{} -- cgit v1.2.3 From db47d077dcd9ee6761de828c9194d3fa2331f9ea Mon Sep 17 00:00:00 2001 From: Nick Dedekind Date: Fri, 9 Aug 2013 09:01:43 +0100 Subject: moved events to separate file. --- libqmenumodel/src/menunode.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'libqmenumodel/src/menunode.cpp') diff --git a/libqmenumodel/src/menunode.cpp b/libqmenumodel/src/menunode.cpp index 10313d5..f244f40 100644 --- a/libqmenumodel/src/menunode.cpp +++ b/libqmenumodel/src/menunode.cpp @@ -18,13 +18,12 @@ */ #include "menunode.h" +#include "qmenumodelevents.h" #include #include #include -const QEvent::Type MenuNodeItemChangeEvent::eventType = static_cast(QEvent::registerEventType()); - MenuNode::MenuNode(const QString &linkType, GMenuModel *model, MenuNode *parent, int pos, QObject *listener) : m_model(model), m_parent(parent), @@ -250,11 +249,3 @@ void MenuNode::onItemsChanged(GMenuModel *model, gint position, gint removed, gi self->commitOperation(); } - -MenuNodeItemChangeEvent::MenuNodeItemChangeEvent(MenuNode* _node, int _position, int _removed, int _added) - : QEvent(MenuNodeItemChangeEvent::eventType), - node(_node), - position(_position), - removed(_removed), - added(_added) -{} -- cgit v1.2.3