on xenial help sign in
Add role for getting filter options model. Add method to activate option based on index or id.

Approved by PS Jenkins bot, Michał Sawicz.

commitbf287c2a2801f74a25698364e148a1d7e4c55f6c authorPawel Stolowski <pawel.stolowski@canonical.com> dateTue 20 Aug 2013, 15:31 (13 years ago) parent0cc8127c629247
4 files changed+27−1
plugins/Unity/filters.cpp+4 plugins/Unity/filters.h+2−1 plugins/Unity/genericoptionsmodel.cpp+18 plugins/Unity/genericoptionsmodel.h+3
plugins/Unity/filters.cpp+4
@@ -23,6 +23,7 @@
2323
2424// Local
2525#include "filter.h"
26+#include "genericoptionsmodel.h"
2627
2728// Qt
2829#include <QDebug>
@@ -77,6 +78,8 @@ QVariant Filters::data(const QModelIndex& index, int role) const
7778 return filter->collapsed();
7879 case Filters::RoleFiltering:
7980 return filter->filtering();
81+ case Filters::RoleOptions:
82+ return QVariant::fromValue(filter->options());
8083 default:
8184 break;
8285 }
@@ -93,6 +96,7 @@ QHash<int, QByteArray> Filters::roleNames() const
9396 roles[Filters::RoleVisible] = "visible";
9497 roles[Filters::RoleCollapsed] = "collapsed";
9598 roles[Filters::RoleFiltering] = "filtering";
99+ roles[Filters::RoleOptions] = "options";
96100 return roles;
97101}
98102
plugins/Unity/filters.h+2−1
@@ -48,7 +48,8 @@ public:
4848 RoleRendererName,
4949 RoleVisible,
5050 RoleCollapsed,
51− RoleFiltering
51+ RoleFiltering,
52+ RoleOptions
5253 };
5354
5455 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
plugins/Unity/genericoptionsmodel.cpp+18
@@ -76,6 +76,24 @@ int GenericOptionsModel::rowCount(const QModelIndex& /* parent */) const
7676 return m_options.size ();
7777}
7878
79+void GenericOptionsModel::setActive(QVector<AbstractFilterOption *>::size_type idx, bool value)
80+{
81+ if (idx < m_options.size())
82+ {
83+ m_options[idx]->setActive(value);
84+ }
85+}
86+
87+void GenericOptionsModel::setActive(const QString &id, bool value)
88+{
89+ Q_FOREACH(auto opt, m_options) {
90+ if (opt->id() == id) {
91+ opt->setActive(value);
92+ break;
93+ }
94+ }
95+}
96+
7997AbstractFilterOption* GenericOptionsModel::getRawOption(QVector<AbstractFilterOption *>::size_type idx) const
8098{
8199 if (idx < m_options.size())
plugins/Unity/genericoptionsmodel.h+3
@@ -49,6 +49,9 @@ public:
4949 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
5050 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
5151
52+ Q_INVOKABLE void setActive(QVector<AbstractFilterOption *>::size_type idx, bool value);
53+ Q_INVOKABLE void setActive(const QString &id, bool value);
54+
5255 AbstractFilterOption* getRawOption(QVector<AbstractFilterOption *>::size_type idx) const;
5356
5457public Q_SLOTS: