aboutsummaryrefslogtreecommitdiff
path: root/libqmenumodel/src/unitymenumodel.cpp
diff options
context:
space:
mode:
authorNick Dedekind <nicholas.dedekind@gmail.com>2013-08-22 12:03:08 +0100
committerNick Dedekind <nicholas.dedekind@gmail.com>2013-08-22 12:03:08 +0100
commitd912a0aed3c62b8f615c37fd9406583b9f0a6a36 (patch)
tree226dc94cb084203dd3c303e1ffc8983cb83bd73c /libqmenumodel/src/unitymenumodel.cpp
parent72cd124bc6a71d7be3bf9e6602c9de55156508ee (diff)
downloadqmenumodel-d912a0aed3c62b8f615c37fd9406583b9f0a6a36.tar.gz
qmenumodel-d912a0aed3c62b8f615c37fd9406583b9f0a6a36.tar.bz2
qmenumodel-d912a0aed3c62b8f615c37fd9406583b9f0a6a36.zip
Added activate/changeState to UnityMenuModel
Diffstat (limited to 'libqmenumodel/src/unitymenumodel.cpp')
-rw-r--r--libqmenumodel/src/unitymenumodel.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/libqmenumodel/src/unitymenumodel.cpp b/libqmenumodel/src/unitymenumodel.cpp
index 920761c..953af01 100644
--- a/libqmenumodel/src/unitymenumodel.cpp
+++ b/libqmenumodel/src/unitymenumodel.cpp
@@ -727,6 +727,8 @@ void UnityMenuModel::registerAction(UnityMenuAction* action)
priv->registeredActions[action] = observer_item;
connect(action, SIGNAL(nameChanged(const QString&)), SLOT(onRegisteredActionNameChanged(const QString&)));
+ connect(action, SIGNAL(activate(const QVariant&)), SLOT(onRegisteredActionActivated(const QVariant&)));
+ connect(action, SIGNAL(changeState(const QVariant&)), SLOT(onRegisteredActionStateChanged(const QVariant&)));
}
}
@@ -770,6 +772,30 @@ void UnityMenuModel::onRegisteredActionNameChanged(const QString& name)
}
}
+void UnityMenuModel::onRegisteredActionActivated(const QVariant& parameter)
+{
+ UnityMenuAction* action = qobject_cast<UnityMenuAction*>(sender());
+ if (!action || action->name().isEmpty())
+ return;
+
+ QByteArray nameArray = action->name().toUtf8();
+ const gchar* action_name = nameArray.constData();
+
+ g_action_group_activate_action (G_ACTION_GROUP (priv->muxer), action_name, Converter::toGVariant(parameter));
+}
+
+void UnityMenuModel::onRegisteredActionStateChanged(const QVariant& parameter)
+{
+ UnityMenuAction* action = qobject_cast<UnityMenuAction*>(sender());
+ if (!action || action->name().isEmpty())
+ return;
+
+ QByteArray nameArray = action->name().toUtf8();
+ const gchar* action_name = nameArray.constData();
+
+ g_action_group_change_action_state (G_ACTION_GROUP (priv->muxer), action_name, Converter::toGVariant(parameter));
+}
+
void UnityMenuModelPrivate::registeredActionAdded(GtkActionObserverItem *observer_item,
const gchar *action_name,
gboolean enabled,