aboutsummaryrefslogtreecommitdiff
path: root/libqmenumodel/src/unitymenumodel.cpp
diff options
context:
space:
mode:
authorNick Dedekind <nicholas.dedekind@gmail.com>2013-08-22 12:56:43 +0100
committerNick Dedekind <nicholas.dedekind@gmail.com>2013-08-22 12:56:43 +0100
commitc2746565786204a732ff5531434bf636f8df605c (patch)
tree928b3caf70d57782917024efeb53d5f3accb4794 /libqmenumodel/src/unitymenumodel.cpp
parentd912a0aed3c62b8f615c37fd9406583b9f0a6a36 (diff)
downloadqmenumodel-c2746565786204a732ff5531434bf636f8df605c.tar.gz
qmenumodel-c2746565786204a732ff5531434bf636f8df605c.tar.bz2
qmenumodel-c2746565786204a732ff5531434bf636f8df605c.zip
Using qt event loop to pass UnityMenuAction events
Diffstat (limited to 'libqmenumodel/src/unitymenumodel.cpp')
-rw-r--r--libqmenumodel/src/unitymenumodel.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/libqmenumodel/src/unitymenumodel.cpp b/libqmenumodel/src/unitymenumodel.cpp
index 953af01..b99f406 100644
--- a/libqmenumodel/src/unitymenumodel.cpp
+++ b/libqmenumodel/src/unitymenumodel.cpp
@@ -21,6 +21,7 @@
#include "actionstateparser.h"
#include "unitymenumodelevents.h"
#include "unitymenuaction.h"
+#include "unitymenuactionevents.h"
#include <QIcon>
#include <QQmlComponent>
@@ -765,7 +766,9 @@ void UnityMenuModel::onRegisteredActionNameChanged(const QString& name)
if (g_action_group_query_action (G_ACTION_GROUP (priv->muxer), action_name,
&enabled, &parameter_type, NULL, NULL, &state))
{
- action->onAdded(enabled, Converter::toQVariant(state));
+ UnityMenuActionAddEvent umaae(enabled, Converter::toQVariant(state));
+ QCoreApplication::sendEvent(action, &umaae);
+
if (state) {
g_variant_unref (state);
}
@@ -805,7 +808,8 @@ void UnityMenuModelPrivate::registeredActionAdded(GtkActionObserverItem *obse
action = (UnityMenuAction *) g_object_get_qdata (G_OBJECT (observer_item), unity_menu_action_quark ());
// FIXME - needs to go through event loop
if (action) {
- action->onAdded(enabled, Converter::toQVariant(state));
+ UnityMenuActionAddEvent umaae(enabled, Converter::toQVariant(state));
+ QCoreApplication::sendEvent(action, &umaae);
}
}
@@ -813,9 +817,10 @@ void UnityMenuModelPrivate::registeredActionEnabledChanged(GtkActionObserverItem
{
UnityMenuAction *action;
action = (UnityMenuAction *) g_object_get_qdata (G_OBJECT (observer_item), unity_menu_action_quark ());
- // FIXME - needs to go through event loop
+
if (action) {
- action->onEnabledChanged(enabled);
+ UnityMenuActionEnabledChangedEvent umaece(enabled);
+ QCoreApplication::sendEvent(action, &umaece);
}
}
@@ -823,9 +828,10 @@ void UnityMenuModelPrivate::registeredActionStateChanged(GtkActionObserverItem *
{
UnityMenuAction *action;
action = (UnityMenuAction *) g_object_get_qdata (G_OBJECT (observer_item), unity_menu_action_quark ());
- // FIXME - needs to go through event loop
+
if (action) {
- action->onStateChanged(Converter::toQVariant(state));
+ UnityMenuActionStateChangeEvent umasce(Converter::toQVariant(state));
+ QCoreApplication::sendEvent(action, &umasce);
}
}
@@ -833,8 +839,9 @@ void UnityMenuModelPrivate::registeredActionRemoved(GtkActionObserverItem *obser
{
UnityMenuAction *action;
action = (UnityMenuAction *) g_object_get_qdata (G_OBJECT (observer_item), unity_menu_action_quark ());
- // FIXME - needs to go through event loop
+
if (action) {
- action->onRemoved();
+ UnityMenuActionRemoveEvent umare;
+ QCoreApplication::sendEvent(action, &umare);
}
}