diff options
author | Renato Araujo Oliveira Filho <renato.filho@canonical.com> | 2012-11-13 17:16:59 -0300 |
---|---|---|
committer | Renato Araujo Oliveira Filho <renato.filho@canonical.com> | 2012-11-13 17:16:59 -0300 |
commit | 53dfc2a919fd03f5570cb106d71d3989a3f528d9 (patch) | |
tree | 43f75f57c482c2c75f86f10c5877683a24859412 /libqmenumodel/src/qmenumodel.cpp | |
parent | 1915b094437bc94aa4ea44e4ccf489456f375e06 (diff) | |
download | qmenumodel-53dfc2a919fd03f5570cb106d71d3989a3f528d9.tar.gz qmenumodel-53dfc2a919fd03f5570cb106d71d3989a3f528d9.tar.bz2 qmenumodel-53dfc2a919fd03f5570cb106d71d3989a3f528d9.zip |
Created auxiliary functions. To allows access the model data from JavaScript;
Diffstat (limited to 'libqmenumodel/src/qmenumodel.cpp')
-rw-r--r-- | libqmenumodel/src/qmenumodel.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/libqmenumodel/src/qmenumodel.cpp b/libqmenumodel/src/qmenumodel.cpp index f0c2274..a704d85 100644 --- a/libqmenumodel/src/qmenumodel.cpp +++ b/libqmenumodel/src/qmenumodel.cpp @@ -51,6 +51,10 @@ QMenuModel::QMenuModel(GMenuModel *other, QObject *parent) } setRoleNames(rolesNames); setMenuModel(other); + + QObject::connect(this, SIGNAL(rowsInserted(const QModelIndex &, int, int)), this, SIGNAL(countChanged())); + QObject::connect(this, SIGNAL(rowsRemoved(const QModelIndex &, int, int)), this, SIGNAL(countChanged())); + QObject::connect(this, SIGNAL(modelReset()), this, SIGNAL(countChanged())); } /*! \internal */ @@ -59,6 +63,42 @@ QMenuModel::~QMenuModel() clearModel(); } +/*! + \qmlmethod QDBusMenuModel::get(int) + + Returns the item at index in the model. This allows the item data to be accessed from JavaScript: + + \b Note: methods should only be called after the Component has completed. +*/ + +QVariantMap QMenuModel::get(int row) const +{ + QVariantMap result; + int rowCountValue = rowCount(); + if ((rowCountValue > 0) && (row >= 0) && (row < rowCountValue)) { + QModelIndex i = index(row); + result.insert("action", data(i, Action)); + result.insert("label", data(i, Label)); + result.insert("linkSection", data(i, LinkSection)); + result.insert("linkSubMenu", data(i, LinkSubMenu)); + result.insert("extra", data(i, Extra)); + } + + return result; +} + +/*! + \qmlmethod QDBusMenuModel::count() + + The number of data entries in the model. + + \b Note: methods should only be called after the Component has completed. +*/ +int QMenuModel::count() const +{ + return rowCount(); +} + /*! \internal */ void QMenuModel::setMenuModel(GMenuModel *other) { |