aboutsummaryrefslogtreecommitdiff
path: root/src/QMenuModel
diff options
context:
space:
mode:
Diffstat (limited to 'src/QMenuModel')
-rw-r--r--src/QMenuModel/CMakeLists.txt13
-rw-r--r--src/QMenuModel/qdbusactiongroup.cpp193
-rw-r--r--src/QMenuModel/qdbusactiongroup.h63
-rw-r--r--src/QMenuModel/qdbusmenumodel.cpp64
-rw-r--r--src/QMenuModel/qdbusmenumodel.h45
-rw-r--r--src/QMenuModel/qdbusobject.cpp121
-rw-r--r--src/QMenuModel/qdbusobject.h65
-rw-r--r--src/QMenuModel/qmenumodel.cpp156
-rw-r--r--src/QMenuModel/qmenumodel.h44
9 files changed, 5 insertions, 759 deletions
diff --git a/src/QMenuModel/CMakeLists.txt b/src/QMenuModel/CMakeLists.txt
index ee3f28c..bf3bb5a 100644
--- a/src/QMenuModel/CMakeLists.txt
+++ b/src/QMenuModel/CMakeLists.txt
@@ -1,16 +1,11 @@
+
+project(qmenumodelqmlplugin)
+
set(QMENUMODEL_SRC
- qmenumodel.cpp
- qdbusobject.cpp
- qdbusmenumodel.cpp
- qdbusactiongroup.cpp
plugin.cpp
)
set(QMENUMODEL_HEADERS
- qmenumodel.h
- qdbusobject.h
- qdbusmenumodel.h
- qdbusactiongroup.h
plugin.h
)
@@ -25,6 +20,7 @@ add_library(qmenumodel MODULE
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
+ ${qmenumodelcommon_SOURCE_DIR}
${QT_INCLUDE_DIR}
${QT_QTCORE_INCLUDE_DIR}
${QT_QTGUI_INCLUDE_DIR}
@@ -34,6 +30,7 @@ include_directories(
)
target_link_libraries(qmenumodel
+ qmenumodelcommon
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
${QT_QTDCLARATIVE_LIBRARY}
diff --git a/src/QMenuModel/qdbusactiongroup.cpp b/src/QMenuModel/qdbusactiongroup.cpp
deleted file mode 100644
index ca430fb..0000000
--- a/src/QMenuModel/qdbusactiongroup.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-#include "qdbusactiongroup.h"
-
-#include <QDebug>
-
-#include <gio/gio.h>
-
-QDBusActionGroup::QDBusActionGroup(QObject *parent)
- :QObject(parent),
- m_actionGroup(NULL)
-{
-}
-
-QDBusActionGroup::~QDBusActionGroup()
-{
- clear();
-}
-
-QAction *QDBusActionGroup::getAction(const QString &actionName)
-{
- Q_FOREACH(QAction *act, m_actions) {
- if (act->text() == actionName) {
- return act;
- }
- }
-
- return NULL;
-}
-
-void QDBusActionGroup::serviceVanish(GDBusConnection *)
-{
- clear();
-}
-
-void QDBusActionGroup::serviceAppear(GDBusConnection *connection)
-{
- GDBusActionGroup *ag = g_dbus_action_group_get(connection,
- busName().toLatin1(),
- objectPath().toLatin1());
- setActionGroup(ag);
- if (ag == NULL) {
- stop();
- }
-}
-
-void QDBusActionGroup::start()
-{
- QDbusObject::connect();
-}
-
-void QDBusActionGroup::stop()
-{
- QDbusObject::disconnect();
-}
-
-void QDBusActionGroup::busTypeChanged(BusType)
-{
- busTypeChanged();
-}
-
-void QDBusActionGroup::busNameChanged(const QString &)
-{
- busNameChanged();
-}
-
-void QDBusActionGroup::objectPathChanged(const QString &objectPath)
-{
- objectPathChanged();
-}
-
-void QDBusActionGroup::statusChanged(ConnectionStatus status)
-{
- statusChanged();
-}
-
-void QDBusActionGroup::setIntBusType(int busType)
-{
- if ((busType > None) && (busType < LastBusType)) {
- setBusType(static_cast<BusType>(busType));
- }
-}
-
-void QDBusActionGroup::setActionGroup(GDBusActionGroup *ag)
-{
- if (m_actionGroup == reinterpret_cast<GActionGroup*>(ag)) {
- return;
- }
-
- if (m_actionGroup) {
- g_signal_handler_disconnect(m_actionGroup, m_signalActionAddId);
- g_signal_handler_disconnect(m_actionGroup, m_signalActionRemovedId);
- m_signalActionAddId = m_signalActionRemovedId = 0;
- g_object_unref(m_actionGroup);
- }
-
- m_actionGroup = reinterpret_cast<GActionGroup*>(ag);
-
- if (m_actionGroup) {
-
- m_signalActionAddId = g_signal_connect(m_actionGroup,
- "action-add",
- G_CALLBACK(QDBusActionGroup::onActionAdded),
- this);
-
- m_signalActionRemovedId = g_signal_connect(m_actionGroup,
- "action-removed",
- G_CALLBACK(QDBusActionGroup::onActionRemoved),
- this);
-
- gchar **actionNames = g_action_group_list_actions(m_actionGroup);
- for(int i=0; actionNames[i] != NULL; i++) {
- addAction(actionNames[i]);
- }
- g_strfreev(actionNames);
- }
-}
-
-void QDBusActionGroup::addAction(const char *actionName)
-{
- QAction *act = new QAction(actionName, this);
-
- act->setEnabled(g_action_group_get_action_enabled(m_actionGroup, actionName));
-
- const GVariantType *stateType = g_action_group_get_action_state_type(m_actionGroup, actionName);
- if (stateType == G_VARIANT_TYPE_BOOLEAN) {
- act->setCheckable(true);
-
- GVariant *actState = g_action_group_get_action_state(m_actionGroup, actionName);
- if (actState != NULL) {
- act->setChecked(g_variant_get_boolean(actState));
- g_variant_unref(actState);
- }
- }
-
- // remove any older action with the same name
- removeAction(actionName);
-
- m_actions.insert(act);
-}
-
-void QDBusActionGroup::removeAction(const char *actionName)
-{
- Q_FOREACH(QAction *act, m_actions) {
- if (act->text() == actionName) {
- m_actions.remove(act);
- delete act;
- break;
- }
- }
-}
-
-void QDBusActionGroup::updateAction(const char *actionName, GVariant *state)
-{
- QAction *action = getAction(actionName);
- if ((action != NULL) && (state != NULL)) {
-
- const GVariantType *stateType = g_variant_get_type(state);
- if (stateType == G_VARIANT_TYPE_BOOLEAN) {
- action->setChecked(g_variant_get_boolean(state));
- }
- }
-}
-
-void QDBusActionGroup::clear()
-{
- Q_FOREACH(QAction *act, m_actions) {
- delete act;
- }
- m_actions.clear();
-
- if (m_actionGroup != NULL) {
- g_object_unref(m_actionGroup);
- m_actionGroup = NULL;
- }
-}
-
-void QDBusActionGroup::onActionAdded(GDBusActionGroup *, gchar *actionName, gpointer data)
-{
- QDBusActionGroup *self = reinterpret_cast<QDBusActionGroup*>(data);
- self->addAction(actionName);
-}
-
-void QDBusActionGroup::onActionRemoved(GDBusActionGroup *, gchar *actionName, gpointer data)
-{
- QDBusActionGroup *self = reinterpret_cast<QDBusActionGroup*>(data);
- self->removeAction(actionName);
-
-}
-
-void QDBusActionGroup::onActionStateChanged(GDBusActionGroup *ag, gchar *actionName, GVariant *value, gpointer data)
-{
- QDBusActionGroup *self = reinterpret_cast<QDBusActionGroup*>(data);
- self->updateAction(actionName, value);
-}
diff --git a/src/QMenuModel/qdbusactiongroup.h b/src/QMenuModel/qdbusactiongroup.h
deleted file mode 100644
index a32b03e..0000000
--- a/src/QMenuModel/qdbusactiongroup.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef QDBUSACTIONGROUP_H
-#define QDBUSACTIONGROUP_H
-
-#include "qdbusobject.h"
-
-#include <QObject>
-#include <QAction>
-#include <QSet>
-
-class QDBusActionGroup : public QObject, public QDbusObject
-{
- Q_OBJECT
- Q_PROPERTY(int busType READ busType WRITE setIntBusType NOTIFY busTypeChanged)
- Q_PROPERTY(QString busName READ busName WRITE setBusName NOTIFY busNameChanged)
- Q_PROPERTY(QString objectPath READ objectPath WRITE setObjectPath NOTIFY objectPathChanged)
- Q_PROPERTY(int status READ status NOTIFY statusChanged)
-
-public:
- QDBusActionGroup(QObject *parent=0);
- ~QDBusActionGroup();
-
-Q_SIGNALS:
- void busTypeChanged();
- void busNameChanged();
- void objectPathChanged();
- void statusChanged();
-
-public Q_SLOTS:
- void start();
- void stop();
- QAction *getAction(const QString &actionName);
-
-protected:
- virtual void serviceAppear(GDBusConnection *connection);
- virtual void serviceVanish(GDBusConnection *connection);
-
- virtual void busTypeChanged(BusType type);
- virtual void busNameChanged(const QString &busNameChanged);
- virtual void objectPathChanged(const QString &objectPath);
- virtual void statusChanged(ConnectionStatus status);
-
-private:
- GActionGroup *m_actionGroup;
- QSet<QAction*> m_actions;
- int m_signalActionAddId;
- int m_signalActionRemovedId;
-
- // workaround to support int as bustType
- void setIntBusType(int busType);
-
- void setActionGroup(GDBusActionGroup *ag);
- void addAction(const char *actionName);
- void removeAction(const char *actionName);
- void updateAction(const char *actionName, GVariant *state);
- void clear();
-
- // glib slots
- static void onActionAdded(GDBusActionGroup *ag, gchar *actionName, gpointer data);
- static void onActionRemoved(GDBusActionGroup *ag, gchar *actionName, gpointer data);
- static void onActionStateChanged(GDBusActionGroup *ag, gchar *actionName, GVariant *value, gpointer data);
-};
-
-#endif
diff --git a/src/QMenuModel/qdbusmenumodel.cpp b/src/QMenuModel/qdbusmenumodel.cpp
deleted file mode 100644
index c551464..0000000
--- a/src/QMenuModel/qdbusmenumodel.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-#include "qdbusmenumodel.h"
-#include <QDebug>
-
-QDBusMenuModel::QDBusMenuModel(QObject *parent)
- :QMenuModel(0, parent)
-{
-}
-
-QDBusMenuModel::~QDBusMenuModel()
-{
-}
-
-void QDBusMenuModel::start()
-{
- QDbusObject::connect();
-}
-
-void QDBusMenuModel::stop()
-{
- QDbusObject::disconnect();
-}
-
-void QDBusMenuModel::serviceVanish(GDBusConnection *)
-{
- setMenuModel(NULL);
-}
-
-void QDBusMenuModel::serviceAppear(GDBusConnection *connection)
-{
- GMenuModel *model = reinterpret_cast<GMenuModel*>(g_dbus_menu_model_get(connection,
- busName().toLatin1(),
- objectPath().toLatin1()));
- setMenuModel(model);
- if (model == NULL) {
- stop();
- }
-}
-
-void QDBusMenuModel::busTypeChanged(BusType)
-{
- busTypeChanged();
-}
-
-void QDBusMenuModel::busNameChanged(const QString &)
-{
- busNameChanged();
-}
-
-void QDBusMenuModel::objectPathChanged(const QString &objectPath)
-{
- objectPathChanged();
-}
-
-void QDBusMenuModel::statusChanged(ConnectionStatus status)
-{
- statusChanged();
-}
-
-void QDBusMenuModel::setIntBusType(int busType)
-{
- if ((busType > None) && (busType < LastBusType)) {
- setBusType(static_cast<BusType>(busType));
- }
-}
diff --git a/src/QMenuModel/qdbusmenumodel.h b/src/QMenuModel/qdbusmenumodel.h
deleted file mode 100644
index 975e72d..0000000
--- a/src/QMenuModel/qdbusmenumodel.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef QDBUSMENUMODEL_H
-#define QDBUSMENUMODEL_H
-
-#include "qdbusobject.h"
-#include "qmenumodel.h"
-
-#include <gio/gio.h>
-
-class QDBusMenuModel : public QMenuModel, public QDbusObject
-{
- Q_OBJECT
- Q_PROPERTY(int busType READ busType WRITE setIntBusType NOTIFY busTypeChanged)
- Q_PROPERTY(QString busName READ busName WRITE setBusName NOTIFY busNameChanged)
- Q_PROPERTY(QString objectPath READ objectPath WRITE setObjectPath NOTIFY objectPathChanged)
- Q_PROPERTY(int status READ status NOTIFY statusChanged)
-
-public:
- QDBusMenuModel(QObject *parent=0);
- ~QDBusMenuModel();
-
-Q_SIGNALS:
- void busTypeChanged();
- void busNameChanged();
- void objectPathChanged();
- void statusChanged();
-
-public Q_SLOTS:
- void start();
- void stop();
-
-protected:
- virtual void serviceAppear(GDBusConnection *connection);
- virtual void serviceVanish(GDBusConnection *connection);
-
- virtual void busTypeChanged(BusType type);
- virtual void busNameChanged(const QString &busNameChanged);
- virtual void objectPathChanged(const QString &objectPath);
- virtual void statusChanged(ConnectionStatus status);
-
-private:
- // workaround to support int as bustType
- void setIntBusType(int busType);
-};
-
-#endif
diff --git a/src/QMenuModel/qdbusobject.cpp b/src/QMenuModel/qdbusobject.cpp
deleted file mode 100644
index 9f11813..0000000
--- a/src/QMenuModel/qdbusobject.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-#include "qdbusobject.h"
-
-#include <QDebug>
-
-QDbusObject::QDbusObject()
- :m_watchId(0),
- m_busType(None),
- m_status(QDbusObject::Disconnected)
-{
-}
-
-QDbusObject::~QDbusObject()
-{
- if (m_watchId != 0) {
- g_bus_unwatch_name (m_watchId);
- m_watchId = 0;
- }
-}
-
-QDbusObject::BusType QDbusObject::busType() const
-{
- return m_busType;
-}
-
-void QDbusObject::setBusType(QDbusObject::BusType type)
-{
- if (m_busType != type) {
- if (m_status != QDbusObject::Disconnected)
- disconnect();
- m_busType = type;
- busTypeChanged(m_busType);
- }
-}
-
-QString QDbusObject::busName() const
-{
- return m_busName;
-}
-
-void QDbusObject::setBusName(const QString &busName)
-{
- if (m_busName != busName) {
- if (m_status != QDbusObject::Disconnected)
- disconnect();
- m_busName = busName;
- busNameChanged(m_busName);
- }
-}
-
-QString QDbusObject::objectPath() const
-{
- return m_objectPath;
-}
-
-void QDbusObject::setObjectPath(const QString &objectPath)
-{
- if (m_objectPath != objectPath) {
- if (m_status != QDbusObject::Disconnected)
- disconnect();
- m_objectPath = objectPath;
- objectPathChanged(m_objectPath);
- }
-}
-
-void QDbusObject::setStatus(QDbusObject::ConnectionStatus status)
-{
- if (m_status != status) {
- m_status = status;
- statusChanged(m_status);
- }
-}
-
-QDbusObject::ConnectionStatus QDbusObject::status() const
-{
- return m_status;
-}
-
-void QDbusObject::connect()
-{
- if (m_status != QDbusObject::Disconnected) {
- return;
- } else if ((m_busType > None) && !m_objectPath.isEmpty() && !m_busName.isEmpty()) {
- GBusType type = m_busType == SessionBus ? G_BUS_TYPE_SESSION : G_BUS_TYPE_SYSTEM;
- m_watchId = g_bus_watch_name (type,
- m_busName.toLatin1(),
- G_BUS_NAME_WATCHER_FLAGS_NONE,
- QDbusObject::onServiceAppeared,
- QDbusObject::onServiceFanished,
- this,
- NULL);
-
- setStatus(QDbusObject::Connecting);
- } else {
- qWarning() << "Invalid dbus connection args";
- }
-}
-
-void QDbusObject::disconnect()
-{
- if (m_status != QDbusObject::Disconnected) {
- g_bus_unwatch_name (m_watchId);
- m_watchId = 0;
- setStatus(QDbusObject::Disconnected);
- }
-}
-
-void QDbusObject::onServiceAppeared(GDBusConnection *connection, const gchar *, const gchar *, gpointer data)
-{
- QDbusObject *self = reinterpret_cast<QDbusObject*>(data);
-
- self->setStatus(QDbusObject::Connected);
- self->serviceAppear(connection);
-}
-
-void QDbusObject::onServiceFanished(GDBusConnection *connection, const gchar *, gpointer data)
-{
- QDbusObject *self = reinterpret_cast<QDbusObject*>(data);
-
- self->setStatus(QDbusObject::Connecting);
- self->serviceVanish(connection);
-}
diff --git a/src/QMenuModel/qdbusobject.h b/src/QMenuModel/qdbusobject.h
deleted file mode 100644
index 0b17ae1..0000000
--- a/src/QMenuModel/qdbusobject.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef QDBUSOBJECT_H
-#define QDBUSOBJECT_H
-
-#include <QObject>
-
-#include <gio/gio.h>
-
-class QDbusObject
-{
-public:
- enum BusType {
- None = 0,
- SessionBus,
- SystemBus,
- LastBusType
- };
-
- enum ConnectionStatus {
- Disconnected = 0,
- Connecting,
- Connected
- };
-
- QDbusObject();
- ~QDbusObject();
-
- BusType busType() const;
- void setBusType(BusType type);
-
- QString busName() const;
- void setBusName(const QString &busName);
-
- QString objectPath() const;
- void setObjectPath(const QString &busName);
-
- ConnectionStatus status() const;
-
- void connect();
- void disconnect();
-
-protected:
- virtual void serviceAppear(GDBusConnection *connection) = 0;
- virtual void serviceVanish(GDBusConnection *connection) = 0;
-
- // notify functions
- virtual void busTypeChanged(BusType type) = 0;
- virtual void busNameChanged(const QString &busNameChanged) = 0;
- virtual void objectPathChanged(const QString &objectPath) = 0;
- virtual void statusChanged(ConnectionStatus status) = 0;
-
-private:
- guint m_watchId;
- BusType m_busType;
- QString m_busName;
- QString m_objectPath;
- ConnectionStatus m_status;
-
- void setStatus(ConnectionStatus status);
-
- // glib slots
- static void onServiceAppeared(GDBusConnection *connection, const gchar *name, const gchar *name_owner, gpointer data);
- static void onServiceFanished(GDBusConnection *connection, const gchar *name, gpointer data);
-};
-
-#endif
diff --git a/src/QMenuModel/qmenumodel.cpp b/src/QMenuModel/qmenumodel.cpp
deleted file mode 100644
index c7ccf56..0000000
--- a/src/QMenuModel/qmenumodel.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-#include "qmenumodel.h"
-#include <QDebug>
-
-QMenuModel::QMenuModel(GMenuModel *other, QObject *parent)
- : QAbstractListModel(parent),
- m_menuModel(0),
- m_signalChangedId(0)
-{
- static QHash<int, QByteArray> rolesNames;
- if (rolesNames.empty()) {
- rolesNames[Action] = "action";
- rolesNames[Label] = "label";
- rolesNames[LinkSection] = "linkSection";
- rolesNames[LinkSubMenu] = "linkSubMenu";
- }
- setRoleNames(rolesNames);
- setMenuModel(other);
-}
-
-QMenuModel::~QMenuModel()
-{
- setMenuModel(NULL);
-}
-
-void QMenuModel::setMenuModel(GMenuModel *other)
-{
- if (m_menuModel == other) {
- return;
- }
-
- beginResetModel();
-
- if (m_menuModel) {
- g_signal_handler_disconnect(m_menuModel, m_signalChangedId);
- m_signalChangedId = 0;
- g_object_unref(m_menuModel);
- }
-
- m_menuModel = other;
-
- endResetModel();
-
- if (m_menuModel) {
- qDebug() << "Menu size:" << g_menu_model_get_n_items(m_menuModel);
- m_signalChangedId = g_signal_connect(m_menuModel,
- "items-changed",
- G_CALLBACK(QMenuModel::onItemsChanged),
- this);
- }
-}
-
-GMenuModel *QMenuModel::menuModel() const
-{
- return m_menuModel;
-}
-
-/* QAbstractItemModel */
-int QMenuModel::columnCount(const QModelIndex &) const
-{
- return 1;
-}
-
-QVariant QMenuModel::data(const QModelIndex &index, int role) const
-{
- QVariant attribute;
- int rowCountValue = rowCount();
-
- if ((rowCountValue > 0) && (index.row() >= 0) && (index.row() < rowCountValue)) {
- if (m_menuModel) {
- switch (role)
- {
- case Action:
- attribute = getStringAttribute(index, G_MENU_ATTRIBUTE_ACTION);
- break;
- case Label:
- attribute = getStringAttribute(index, G_MENU_ATTRIBUTE_LABEL);
- break;
- case LinkSection:
- attribute = getLink(index, G_MENU_LINK_SECTION);
- break;
- case LinkSubMenu:
- attribute = getLink(index, G_MENU_LINK_SUBMENU);
- break;
- default:
- break;
- }
- }
- }
- return attribute;
-}
-
-QModelIndex QMenuModel::parent(const QModelIndex &index) const
-{
- return QModelIndex();
-}
-
-int QMenuModel::rowCount(const QModelIndex &) const
-{
- if (m_menuModel) {
- return g_menu_model_get_n_items(m_menuModel);
- }
- return 0;
-}
-
-QVariant QMenuModel::getStringAttribute(const QModelIndex &index,
- const QString &attribute) const
-{
- QVariant result;
- gchar* value = NULL;
- g_menu_model_get_item_attribute(m_menuModel,
- index.row(),
- attribute.toLatin1(),
- "s", &value);
- if (value) {
- result = QVariant(QString::fromLatin1(value));
- g_free(value);
- }
- return result;
-}
-
-QVariant QMenuModel::getLink(const QModelIndex &index,
- const QString &linkName) const
-{
- GMenuModel *link;
-
- link = g_menu_model_get_item_link(m_menuModel,
- index.row(),
- linkName.toLatin1());
-
- if (link) {
- QMenuModel *other = new QMenuModel(link, const_cast<QMenuModel*>(this));
- return QVariant::fromValue<QObject*>(other);
- }
-
- return QVariant();
-}
-
-void QMenuModel::onItemsChanged(GMenuModel *,
- gint position,
- gint removed,
- gint added,
- gpointer data)
-{
- QMenuModel *self = reinterpret_cast<QMenuModel*>(data);
-
- if (removed > 0) {
- self->beginRemoveRows(QModelIndex(), position, position + removed - 1);
- self->endRemoveRows();
- }
-
- if (added > 0) {
- self->beginInsertRows(QModelIndex(), position, position + added - 1);
- self->endInsertRows();
- }
-}
-
diff --git a/src/QMenuModel/qmenumodel.h b/src/QMenuModel/qmenumodel.h
deleted file mode 100644
index 18ad21c..0000000
--- a/src/QMenuModel/qmenumodel.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef QMENUMODEL_H
-#define QMENUMODEL_H
-
-#include <QAbstractListModel>
-#include <gio/gio.h>
-
-
-class QMenuModel : public QAbstractListModel
-{
- Q_OBJECT
-
-public:
- enum MenuRoles {
- Action = 0,
- Label,
- LinkSection,
- LinkSubMenu
- };
-
- ~QMenuModel();
-
- /* QAbstractItemModel */
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- QModelIndex parent (const QModelIndex &index) const;
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
-
-protected:
- QMenuModel(GMenuModel *other=0, QObject *parent=0);
- void setMenuModel(GMenuModel *model);
- GMenuModel *menuModel() const;
-
-private:
- GMenuModel *m_menuModel;
- guint m_signalChangedId;
-
- QVariant getStringAttribute(const QModelIndex &index, const QString &attribute) const;
- QVariant getLink(const QModelIndex &index, const QString &linkName) const;
-
- static void onItemsChanged(GMenuModel *model, gint position, gint removed, gint added, gpointer data);
-
-};
-
-#endif