diff options
author | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-07-26 16:29:32 +0200 |
---|---|---|
committer | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-07-26 16:29:32 +0200 |
commit | 16b480d00dd5c1fba5252e728cfc71aaa5cc916f (patch) | |
tree | f97f1b0b29a8105f426974f74454fbf24728c5cb /libqmenumodel/src | |
parent | d57caa61f787c4bd7cb0823eadbbc5d84f542f0a (diff) | |
download | qmenumodel-16b480d00dd5c1fba5252e728cfc71aaa5cc916f.tar.gz qmenumodel-16b480d00dd5c1fba5252e728cfc71aaa5cc916f.tar.bz2 qmenumodel-16b480d00dd5c1fba5252e728cfc71aaa5cc916f.zip |
unitymenumodel: add get()
Diffstat (limited to 'libqmenumodel/src')
-rw-r--r-- | libqmenumodel/src/unitymenumodel.cpp | 12 | ||||
-rw-r--r-- | libqmenumodel/src/unitymenumodel.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/libqmenumodel/src/unitymenumodel.cpp b/libqmenumodel/src/unitymenumodel.cpp index 114c985..d40c813 100644 --- a/libqmenumodel/src/unitymenumodel.cpp +++ b/libqmenumodel/src/unitymenumodel.cpp @@ -61,6 +61,7 @@ public: guint nameWatchId; QVariantMap actions; QByteArray menuObjectPath; + QHash<QByteArray, int> roles; 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); @@ -542,3 +543,14 @@ bool UnityMenuModel::loadExtendedAttributes(int position, const QVariantMap &sch g_object_set_qdata_full (G_OBJECT (item), unity_menu_item_extended_attributes_quark (), extendedAttrs, freeExtendedAttrs); } + +QVariant UnityMenuModel::get(int row, const QByteArray &role) +{ + if (priv->roles.isEmpty()) { + QHash<int, QByteArray> names = roleNames(); + Q_FOREACH (int role, names.keys()) + priv->roles.insert(names[role], role); + } + + return this->data(this->index(row, 0), priv->roles[role]); +} diff --git a/libqmenumodel/src/unitymenumodel.h b/libqmenumodel/src/unitymenumodel.h index 9151217..396eea3 100644 --- a/libqmenumodel/src/unitymenumodel.h +++ b/libqmenumodel/src/unitymenumodel.h @@ -50,6 +50,7 @@ public: Q_INVOKABLE QObject * submenu(int position); Q_INVOKABLE bool loadExtendedAttributes(int position, const QVariantMap &schema); + Q_INVOKABLE QVariant get(int row, const QByteArray &role); Q_SIGNALS: void busNameChanged(const QByteArray &name); |