aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Dedekind <nicholas.dedekind@gmail.com>2013-08-27 17:24:38 +0100
committerNick Dedekind <nicholas.dedekind@gmail.com>2013-08-27 17:24:38 +0100
commitebace67d14edcd8e0e4d3d1ebe5e54e2b59270b3 (patch)
treed69ea96f19fcc2c5017152d8e4adf1be739b06d9
parentd23d8488ec7d308aa7a0ebfa2e0fb3ff12bb1ce4 (diff)
downloadqmenumodel-ebace67d14edcd8e0e4d3d1ebe5e54e2b59270b3.tar.gz
qmenumodel-ebace67d14edcd8e0e4d3d1ebe5e54e2b59270b3.tar.bz2
qmenumodel-ebace67d14edcd8e0e4d3d1ebe5e54e2b59270b3.zip
Review comments
-rw-r--r--libqmenumodel/src/CMakeLists.txt4
-rw-r--r--libqmenumodel/src/gtk/gtkactionobserveritem.c170
-rw-r--r--libqmenumodel/src/gtk/gtkactionobserveritem.h67
-rw-r--r--libqmenumodel/src/gtk/gtksimpleactionobserver.c160
-rw-r--r--libqmenumodel/src/gtk/gtksimpleactionobserver.h67
-rw-r--r--libqmenumodel/src/unitymenumodel.cpp34
6 files changed, 246 insertions, 256 deletions
diff --git a/libqmenumodel/src/CMakeLists.txt b/libqmenumodel/src/CMakeLists.txt
index e360a70..84f4daa 100644
--- a/libqmenumodel/src/CMakeLists.txt
+++ b/libqmenumodel/src/CMakeLists.txt
@@ -21,8 +21,8 @@ set(QMENUMODEL_SRC
gtk/gtkactionobservable.h
gtk/gtkactionobserver.c
gtk/gtkactionobserver.h
- gtk/gtkactionobserveritem.c
- gtk/gtkactionobserveritem.h
+ gtk/gtksimpleactionobserver.c
+ gtk/gtksimpleactionobserver.h
gtk/gtkmenutracker.c
gtk/gtkmenutracker.h
gtk/gtkmenutrackeritem.c
diff --git a/libqmenumodel/src/gtk/gtkactionobserveritem.c b/libqmenumodel/src/gtk/gtkactionobserveritem.c
deleted file mode 100644
index db4c544..0000000
--- a/libqmenumodel/src/gtk/gtkactionobserveritem.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright © 2013 Canonical Limited
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * licence or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Nick Dedekind <nick.dedekind@canonical.com
- */
-
-#include "gtkactionobserveritem.h"
-
-typedef GObjectClass GtkActionObserverItemClass;
-
-struct _GtkActionObserverItem
-{
- GObject parent_instance;
- GtkActionObservable *observable;
- gchar* action_name;
-
- GtkActionAddedFunc action_added;
- GtkActionEnabledChangedFunc action_enabled_changed;
- GtkActionStateChangedFunc action_state_changed;
- GtkActionRemovedFunc action_removed;
-};
-
-static void gtk_action_observer_item_init_observer_iface (GtkActionObserverInterface *iface);
-G_DEFINE_TYPE_WITH_CODE (GtkActionObserverItem, gtk_action_observer_item, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GTK_TYPE_ACTION_OBSERVER, gtk_action_observer_item_init_observer_iface))
-
-static void
-gtk_action_observer_item_finalize (GObject *object)
-{
- GtkActionObserverItem *self = GTK_ACTION_OBSERVER_ITEM (object);
-
- if (self->observable)
- g_object_unref (self->observable);
-
- if (self->action_name)
- g_free(self->action_name);
-
- G_OBJECT_CLASS (gtk_action_observer_item_parent_class)->finalize (object);
-}
-
-static void
-gtk_action_observer_item_init (GtkActionObserverItem * self)
-{
-}
-
-static void
-gtk_action_observer_item_class_init (GtkActionObserverItemClass *class)
-{
- class->finalize = gtk_action_observer_item_finalize;
-}
-
-static void
-gtk_action_observer_item_action_added (GtkActionObserver *observer,
- GtkActionObservable *observable,
- const gchar *action_name,
- const GVariantType *parameter_type,
- gboolean enabled,
- GVariant *state)
-{
- g_return_if_fail (GTK_IS_ACTION_OBSERVER_ITEM (observer));
-
- GtkActionObserverItem* self;
- self = GTK_ACTION_OBSERVER_ITEM (observer);
- self->action_added(self, action_name, enabled, state);
-}
-
-static void
-gtk_action_observer_item_action_enabled_changed (GtkActionObserver *observer,
- GtkActionObservable *observable,
- const gchar *action_name,
- gboolean enabled)
-{
- g_return_if_fail (GTK_IS_ACTION_OBSERVER_ITEM (observer));
-
- GtkActionObserverItem* self;
- self = GTK_ACTION_OBSERVER_ITEM (observer);
- self->action_enabled_changed(self, action_name, enabled);
-}
-
-static void
-gtk_action_observer_item_action_state_changed (GtkActionObserver *observer,
- GtkActionObservable *observable,
- const gchar *action_name,
- GVariant *state)
-{
- g_return_if_fail (GTK_IS_ACTION_OBSERVER_ITEM (observer));
-
- GtkActionObserverItem* self;
- self = GTK_ACTION_OBSERVER_ITEM (observer);
- self->action_state_changed(self, action_name, state);
-}
-
-static void
-gtk_action_observer_item_action_removed (GtkActionObserver *observer,
- GtkActionObservable *observable,
- const gchar *action_name)
-{
- g_return_if_fail (GTK_IS_ACTION_OBSERVER_ITEM (observer));
-
- GtkActionObserverItem* self;
- self = GTK_ACTION_OBSERVER_ITEM (observer);
- self->action_removed(self, action_name);
-}
-
-static void
-gtk_action_observer_item_init_observer_iface (GtkActionObserverInterface *iface)
-{
- iface->action_added = gtk_action_observer_item_action_added;
- iface->action_enabled_changed = gtk_action_observer_item_action_enabled_changed;
- iface->action_state_changed = gtk_action_observer_item_action_state_changed;
- iface->action_removed = gtk_action_observer_item_action_removed;
-}
-
-GtkActionObserverItem*
-gtk_action_observer_item_new (GtkActionObservable *observable,
- GtkActionAddedFunc action_added,
- GtkActionEnabledChangedFunc action_enabled_changed,
- GtkActionStateChangedFunc action_state_changed,
- GtkActionRemovedFunc action_removed)
-{
- GtkActionObserverItem* self;
- self = g_object_new (GTK_TYPE_ACTION_OBSERVER_ITEM, NULL);
- self->observable = g_object_ref (observable);
- self->action_name = NULL;
-
- self->action_added = action_added;
- self->action_enabled_changed = action_enabled_changed;
- self->action_state_changed = action_state_changed;
- self->action_removed = action_removed;
-
- return self;
-}
-
-void
-gtk_action_observer_item_register_action (GtkActionObserverItem *self,
- const gchar* action_name)
-{
- gtk_action_observer_item_unregister_action(self);
-
- if (action_name && g_strcmp0(action_name, "") != 0) {
- self->action_name = g_strdup (action_name);
-
- if (g_strcmp0(self->action_name, "") != 0) {
- gtk_action_observable_register_observer (self->observable, self->action_name, GTK_ACTION_OBSERVER (self));
- }
- }
-}
-
-void
-gtk_action_observer_item_unregister_action (GtkActionObserverItem *self)
-{
- if (self->action_name) {
- gtk_action_observable_unregister_observer(self->observable, self->action_name, GTK_ACTION_OBSERVER (self));
- g_free(self->action_name);
- self->action_name = NULL;
- }
-}
diff --git a/libqmenumodel/src/gtk/gtkactionobserveritem.h b/libqmenumodel/src/gtk/gtkactionobserveritem.h
deleted file mode 100644
index 315cadc..0000000
--- a/libqmenumodel/src/gtk/gtkactionobserveritem.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright © 2013 Canonical Limited
- *
- * This library is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * licence or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Nick Dedekind <nick.dedekind@canonical.com
- */
-
-#ifndef __GTK_ACTION_OBSERVER_ITEM_H__
-#define __GTK_ACTION_OBSERVER_ITEM_H__
-
-#include "gtkactionobserver.h"
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_ACTION_OBSERVER_ITEM (gtk_action_observer_item_get_type ())
-#define GTK_ACTION_OBSERVER_ITEM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
- GTK_TYPE_ACTION_OBSERVER_ITEM, GtkActionObserverItem))
-#define GTK_IS_ACTION_OBSERVER_ITEM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
- GTK_TYPE_ACTION_OBSERVER_ITEM))
-
-typedef struct _GtkActionObserverItem GtkActionObserverItem;
-
-typedef void (* GtkActionAddedFunc) (GtkActionObserverItem *observer_item,
- const gchar *action_name,
- gboolean enabled,
- GVariant *state);
-
-typedef void (* GtkActionEnabledChangedFunc) (GtkActionObserverItem *observer_item,
- const gchar *action_name,
- gboolean enabled);
-
-typedef void (* GtkActionStateChangedFunc) (GtkActionObserverItem *observer_item,
- const gchar *action_name,
- GVariant *state);
-
-typedef void (* GtkActionRemovedFunc) (GtkActionObserverItem *observer_item,
- const gchar *action_name);
-
-GType gtk_action_observer_item_get_type (void) G_GNUC_CONST;
-
-GtkActionObserverItem* gtk_action_observer_item_new (GtkActionObservable *observable,
- GtkActionAddedFunc action_added,
- GtkActionEnabledChangedFunc action_enabled_changed,
- GtkActionStateChangedFunc action_state_changed,
- GtkActionRemovedFunc action_removed);
-
-
-void gtk_action_observer_item_register_action (GtkActionObserverItem *self,
- const gchar* action_name);
-
-void gtk_action_observer_item_unregister_action (GtkActionObserverItem *self);
-
-G_END_DECLS
-
-#endif // __GTK_ACTION_OBSERVER_ITEM_H__ \ No newline at end of file
diff --git a/libqmenumodel/src/gtk/gtksimpleactionobserver.c b/libqmenumodel/src/gtk/gtksimpleactionobserver.c
new file mode 100644
index 0000000..054b82f
--- /dev/null
+++ b/libqmenumodel/src/gtk/gtksimpleactionobserver.c
@@ -0,0 +1,160 @@
+/*
+ * Copyright © 2013 Canonical Limited
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * licence or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Nick Dedekind <nick.dedekind@canonical.com
+ */
+
+#include "gtksimpleactionobserver.h"
+
+typedef GObjectClass GtkSimpleActionObserverClass;
+
+struct _GtkSimpleActionObserver
+{
+ GObject parent_instance;
+ GtkActionObservable *observable;
+ gchar* action_name;
+
+ GtkActionAddedFunc action_added;
+ GtkActionEnabledChangedFunc action_enabled_changed;
+ GtkActionStateChangedFunc action_state_changed;
+ GtkActionRemovedFunc action_removed;
+};
+
+static void gtk_simple_action_observer_init_observer_iface (GtkActionObserverInterface *iface);
+G_DEFINE_TYPE_WITH_CODE (GtkSimpleActionObserver, gtk_simple_action_observer, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (GTK_TYPE_ACTION_OBSERVER, gtk_simple_action_observer_init_observer_iface))
+
+static void
+gtk_simple_action_observer_finalize (GObject *object)
+{
+ GtkSimpleActionObserver *self = GTK_SIMPLE_ACTION_OBSERVER (object);
+
+ g_clear_object (&self->observable);
+
+ g_free(self->action_name);
+
+ G_OBJECT_CLASS (gtk_simple_action_observer_parent_class)->finalize (object);
+}
+
+static void
+gtk_simple_action_observer_init (GtkSimpleActionObserver * self)
+{
+}
+
+static void
+gtk_simple_action_observer_class_init (GtkSimpleActionObserverClass *class)
+{
+ class->finalize = gtk_simple_action_observer_finalize;
+}
+
+static void
+gtk_simple_action_observer_action_added (GtkActionObserver *observer,
+ GtkActionObservable *observable,
+ const gchar *action_name,
+ const GVariantType *parameter_type,
+ gboolean enabled,
+ GVariant *state)
+{
+ GtkSimpleActionObserver* self;
+ self = GTK_SIMPLE_ACTION_OBSERVER (observer);
+ self->action_added(self, action_name, enabled, state);
+}
+
+static void
+gtk_simple_action_observer_action_enabled_changed (GtkActionObserver *observer,
+ GtkActionObservable *observable,
+ const gchar *action_name,
+ gboolean enabled)
+{
+ GtkSimpleActionObserver* self;
+ self = GTK_SIMPLE_ACTION_OBSERVER (observer);
+ self->action_enabled_changed(self, action_name, enabled);
+}
+
+static void
+gtk_simple_action_observer_action_state_changed (GtkActionObserver *observer,
+ GtkActionObservable *observable,
+ const gchar *action_name,
+ GVariant *state)
+{
+ GtkSimpleActionObserver* self;
+ self = GTK_SIMPLE_ACTION_OBSERVER (observer);
+ self->action_state_changed(self, action_name, state);
+}
+
+static void
+gtk_simple_action_observer_action_removed (GtkActionObserver *observer,
+ GtkActionObservable *observable,
+ const gchar *action_name)
+{
+ GtkSimpleActionObserver* self;
+ self = GTK_SIMPLE_ACTION_OBSERVER (observer);
+ self->action_removed(self, action_name);
+}
+
+static void
+gtk_simple_action_observer_init_observer_iface (GtkActionObserverInterface *iface)
+{
+ iface->action_added = gtk_simple_action_observer_action_added;
+ iface->action_enabled_changed = gtk_simple_action_observer_action_enabled_changed;
+ iface->action_state_changed = gtk_simple_action_observer_action_state_changed;
+ iface->action_removed = gtk_simple_action_observer_action_removed;
+}
+
+GtkSimpleActionObserver*
+gtk_simple_action_observer_new (GtkActionObservable *observable,
+ GtkActionAddedFunc action_added,
+ GtkActionEnabledChangedFunc action_enabled_changed,
+ GtkActionStateChangedFunc action_state_changed,
+ GtkActionRemovedFunc action_removed)
+{
+ GtkSimpleActionObserver* self;
+ self = g_object_new (GTK_TYPE_SIMPLE_ACTION_OBSERVER, NULL);
+ self->observable = g_object_ref (observable);
+ self->action_name = NULL;
+
+ self->action_added = action_added;
+ self->action_enabled_changed = action_enabled_changed;
+ self->action_state_changed = action_state_changed;
+ self->action_removed = action_removed;
+
+ return self;
+}
+
+void
+gtk_simple_action_observer_register_action (GtkSimpleActionObserver *self,
+ const gchar *action_name)
+{
+ gtk_simple_action_observer_unregister_action(self);
+
+ if (action_name && g_strcmp0(action_name, "") != 0) {
+ self->action_name = g_strdup (action_name);
+
+ if (g_strcmp0(self->action_name, "") != 0) {
+ gtk_action_observable_register_observer (self->observable, self->action_name, GTK_ACTION_OBSERVER (self));
+ }
+ }
+}
+
+void
+gtk_simple_action_observer_unregister_action (GtkSimpleActionObserver *self)
+{
+ if (self->action_name) {
+ gtk_action_observable_unregister_observer(self->observable, self->action_name, GTK_ACTION_OBSERVER (self));
+ g_free(self->action_name);
+ self->action_name = NULL;
+ }
+}
diff --git a/libqmenumodel/src/gtk/gtksimpleactionobserver.h b/libqmenumodel/src/gtk/gtksimpleactionobserver.h
new file mode 100644
index 0000000..4276786
--- /dev/null
+++ b/libqmenumodel/src/gtk/gtksimpleactionobserver.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright © 2013 Canonical Limited
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * licence or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Nick Dedekind <nick.dedekind@canonical.com
+ */
+
+#ifndef __GTK_SIMPLE_ACTION_OBSERVER_H__
+#define __GTK_SIMPLE_ACTION_OBSERVER_H__
+
+#include "gtkactionobserver.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SIMPLE_ACTION_OBSERVER (gtk_simple_action_observer_get_type ())
+#define GTK_SIMPLE_ACTION_OBSERVER(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
+ GTK_TYPE_SIMPLE_ACTION_OBSERVER, GtkSimpleActionObserver))
+#define GTK_IS_SIMPLE_ACTION_OBSERVER(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
+ GTK_TYPE_SIMPLE_ACTION_OBSERVER))
+
+typedef struct _GtkSimpleActionObserver GtkSimpleActionObserver;
+
+typedef void (* GtkActionAddedFunc) (GtkSimpleActionObserver *observer_item,
+ const gchar *action_name,
+ gboolean enabled,
+ GVariant *state);
+
+typedef void (* GtkActionEnabledChangedFunc) (GtkSimpleActionObserver *observer_item,
+ const gchar *action_name,
+ gboolean enabled);
+
+typedef void (* GtkActionStateChangedFunc) (GtkSimpleActionObserver *observer_item,
+ const gchar *action_name,
+ GVariant *state);
+
+typedef void (* GtkActionRemovedFunc) (GtkSimpleActionObserver *observer_item,
+ const gchar *action_name);
+
+GType gtk_simple_action_observer_get_type (void) G_GNUC_CONST;
+
+GtkSimpleActionObserver* gtk_simple_action_observer_new (GtkActionObservable *observable,
+ GtkActionAddedFunc action_added,
+ GtkActionEnabledChangedFunc action_enabled_changed,
+ GtkActionStateChangedFunc action_state_changed,
+ GtkActionRemovedFunc action_removed);
+
+
+void gtk_simple_action_observer_register_action (GtkSimpleActionObserver *self,
+ const gchar *action_name);
+
+void gtk_simple_action_observer_unregister_action (GtkSimpleActionObserver *self);
+
+G_END_DECLS
+
+#endif // __GTK_SIMPLE_ACTION_OBSERVER_H__ \ No newline at end of file
diff --git a/libqmenumodel/src/unitymenumodel.cpp b/libqmenumodel/src/unitymenumodel.cpp
index b99f406..4bae374 100644
--- a/libqmenumodel/src/unitymenumodel.cpp
+++ b/libqmenumodel/src/unitymenumodel.cpp
@@ -30,7 +30,7 @@
extern "C" {
#include "gtk/gtkactionmuxer.h"
#include "gtk/gtkmenutracker.h"
- #include "gtk/gtkactionobserveritem.h"
+ #include "gtk/gtksimpleactionobserver.h"
}
G_DEFINE_QUARK (UNITY_MENU_MODEL, unity_menu_model)
@@ -78,7 +78,7 @@ public:
QByteArray menuObjectPath;
QHash<QByteArray, int> roles;
ActionStateParser* actionStateParser;
- QHash<UnityMenuAction*, GtkActionObserverItem*> registeredActions;
+ QHash<UnityMenuAction*, GtkSimpleActionObserver*> registeredActions;
static void nameAppeared(GDBusConnection *connection, const gchar *name, const gchar *owner, gpointer user_data);
static void nameVanished(GDBusConnection *connection, const gchar *name, gpointer user_data);
@@ -86,13 +86,13 @@ public:
static void menuItemRemoved(gint position, gpointer user_data);
static void menuItemChanged(GObject *object, GParamSpec *pspec, gpointer user_data);
- static void registeredActionAdded(GtkActionObserverItem *observer_item,
+ static void registeredActionAdded(GtkSimpleActionObserver *observer_item,
const gchar *action_name,
gboolean enabled,
GVariant *state);
- static void registeredActionEnabledChanged(GtkActionObserverItem *observer_item, const gchar *action_name, gboolean enabled);
- static void registeredActionStateChanged(GtkActionObserverItem *observer_item, const gchar *action_name, GVariant *state);
- static void registeredActionRemoved(GtkActionObserverItem *observer_item, const gchar *action_name);
+ static void registeredActionEnabledChanged(GtkSimpleActionObserver *observer_item, const gchar *action_name, gboolean enabled);
+ static void registeredActionStateChanged(GtkSimpleActionObserver *observer_item, const gchar *action_name, GVariant *state);
+ static void registeredActionRemoved(GtkSimpleActionObserver *observer_item, const gchar *action_name);
};
void menu_item_free (gpointer data)
@@ -137,7 +137,7 @@ UnityMenuModelPrivate::~UnityMenuModelPrivate()
g_clear_object (&this->muxer);
g_clear_object (&this->connection);
- QHash<UnityMenuAction*, GtkActionObserverItem*>::const_iterator it = this->registeredActions.constBegin();
+ QHash<UnityMenuAction*, GtkSimpleActionObserver*>::const_iterator it = this->registeredActions.constBegin();
for (; it != this->registeredActions.constEnd(); ++it) {
g_object_unref(it.value());
}
@@ -716,8 +716,8 @@ bool UnityMenuModel::event(QEvent* e)
void UnityMenuModel::registerAction(UnityMenuAction* action)
{
if (!priv->registeredActions.contains(action)) {
- GtkActionObserverItem* observer_item;
- observer_item = gtk_action_observer_item_new(GTK_ACTION_OBSERVABLE (priv->muxer),
+ GtkSimpleActionObserver* observer_item;
+ observer_item = gtk_simple_action_observer_new(GTK_ACTION_OBSERVABLE (priv->muxer),
UnityMenuModelPrivate::registeredActionAdded,
UnityMenuModelPrivate::registeredActionEnabledChanged,
UnityMenuModelPrivate::registeredActionStateChanged,
@@ -736,7 +736,7 @@ void UnityMenuModel::registerAction(UnityMenuAction* action)
void UnityMenuModel::unregisterAction(UnityMenuAction* action)
{
if (priv->registeredActions.contains(action)) {
- GtkActionObserverItem* observer_item;
+ GtkSimpleActionObserver* observer_item;
observer_item = priv->registeredActions[action];
g_object_unref(observer_item);
priv->registeredActions.remove(action);
@@ -751,13 +751,13 @@ void UnityMenuModel::onRegisteredActionNameChanged(const QString& name)
if (!action || !priv->registeredActions.contains(action))
return;
- GtkActionObserverItem* observer_item;
+ GtkSimpleActionObserver* observer_item;
observer_item = priv->registeredActions[action];
QByteArray nameArray = name.toUtf8();
const gchar* action_name = nameArray.constData();
- gtk_action_observer_item_register_action (observer_item, action_name);
+ gtk_simple_action_observer_register_action (observer_item, action_name);
const GVariantType *parameter_type;
gboolean enabled;
@@ -799,21 +799,21 @@ void UnityMenuModel::onRegisteredActionStateChanged(const QVariant& parameter)
g_action_group_change_action_state (G_ACTION_GROUP (priv->muxer), action_name, Converter::toGVariant(parameter));
}
-void UnityMenuModelPrivate::registeredActionAdded(GtkActionObserverItem *observer_item,
+void UnityMenuModelPrivate::registeredActionAdded(GtkSimpleActionObserver *observer_item,
const gchar *action_name,
gboolean enabled,
GVariant *state)
{
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) {
UnityMenuActionAddEvent umaae(enabled, Converter::toQVariant(state));
QCoreApplication::sendEvent(action, &umaae);
}
}
-void UnityMenuModelPrivate::registeredActionEnabledChanged(GtkActionObserverItem *observer_item, const gchar *action_name, gboolean enabled)
+void UnityMenuModelPrivate::registeredActionEnabledChanged(GtkSimpleActionObserver *observer_item, const gchar *action_name, gboolean enabled)
{
UnityMenuAction *action;
action = (UnityMenuAction *) g_object_get_qdata (G_OBJECT (observer_item), unity_menu_action_quark ());
@@ -824,7 +824,7 @@ void UnityMenuModelPrivate::registeredActionEnabledChanged(GtkActionObserverItem
}
}
-void UnityMenuModelPrivate::registeredActionStateChanged(GtkActionObserverItem *observer_item, const gchar *action_name, GVariant *state)
+void UnityMenuModelPrivate::registeredActionStateChanged(GtkSimpleActionObserver *observer_item, const gchar *action_name, GVariant *state)
{
UnityMenuAction *action;
action = (UnityMenuAction *) g_object_get_qdata (G_OBJECT (observer_item), unity_menu_action_quark ());
@@ -835,7 +835,7 @@ void UnityMenuModelPrivate::registeredActionStateChanged(GtkActionObserverItem *
}
}
-void UnityMenuModelPrivate::registeredActionRemoved(GtkActionObserverItem *observer_item, const gchar *action_name)
+void UnityMenuModelPrivate::registeredActionRemoved(GtkSimpleActionObserver *observer_item, const gchar *action_name)
{
UnityMenuAction *action;
action = (UnityMenuAction *) g_object_get_qdata (G_OBJECT (observer_item), unity_menu_action_quark ());