on xenial help sign in
Support Filter's roles in Filters model.
commitdc77e47cb226392176815244ba533c0037f57831 authorPawel Stolowski <pawel.stolowski@canonical.com> dateThu 8 Aug 2013, 14:50 (13 years ago) parenta83983a
2 files changed+37−11
plugins/Unity/filters.cpp+29−10 plugins/Unity/filters.h+8−1
plugins/Unity/filters.cpp+29−10
@@ -33,6 +33,15 @@
3333Filters::Filters(unity::dash::Filters::Ptr unityFilters, QObject *parent) :
3434 QAbstractListModel(parent), m_unityFilters(unityFilters)
3535{
36+ // setup roles
37+ m_roles[Filters::RoleId] = "id";
38+ m_roles[Filters::RoleName] = "name";
39+ m_roles[Filters::RoleIconHint] = "iconHint";
40+ m_roles[Filters::RoleRendererName] = "rendererName";
41+ m_roles[Filters::RoleVisible] = "visible";
42+ m_roles[Filters::RoleCollapsed] = "collapsed";
43+ m_roles[Filters::RoleFiltering] = "filtering";
44+
3645 for (unsigned int i=0; i<m_unityFilters->count(); i++) {
3746 unity::dash::Filter::Ptr unityFilter = m_unityFilters->FilterAtIndex(i);
3847 addFilter(unityFilter, i);
@@ -58,25 +67,35 @@ int Filters::rowCount(const QModelIndex& parent) const
5867
5968QVariant Filters::data(const QModelIndex& index, int role) const
6069{
61− Q_UNUSED(role)
62−
6370 if (!index.isValid()) {
6471 return QVariant();
6572 }
6673
67− if (role == Filters::RoleFilter) {
68− Filter* filter = m_filters.at(index.row());
69− return QVariant::fromValue(filter);
70− } else {
71− return QVariant();
74+ Filter* filter = m_filters.at(index.row());
75+ switch (role)
76+ {
77+ case Filters::RoleId:
78+ return filter->id();
79+ case Filters::RoleName:
80+ return filter->name();
81+ case Filters::RoleIconHint:
82+ return filter->iconHint();
83+ case Filters::RoleRendererName:
84+ return filter->rendererName();
85+ case Filters::RoleVisible:
86+ return filter->visible();
87+ case Filters::RoleCollapsed:
88+ return filter->collapsed();
89+ case Filters::RoleFiltering:
90+ return filter->filtering();
91+ default:
92+ return QVariant();
7293 }
7394}
7495
7596QHash<int, QByteArray> Filters::roleNames() const
7697{
77− QHash<int, QByteArray> roles;
78− roles[Filters::RoleFilter] = "filter";
79− return roles;
98+ return m_roles;
8099}
81100
82101Filter* Filters::getFilter(const QString& id) const
plugins/Unity/filters.h+8−1
@@ -42,7 +42,13 @@ public:
4242 ~Filters();
4343
4444 enum Roles {
45− RoleFilter
45+ RoleId,
46+ RoleName,
47+ RoleIconHint,
48+ RoleRendererName,
49+ RoleVisible,
50+ RoleCollapsed,
51+ RoleFiltering
4652 };
4753
4854 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
@@ -54,6 +60,7 @@ public:
5460private:
5561 unity::dash::Filters::Ptr m_unityFilters;
5662 QList<Filter*> m_filters;
63+ QHash<int, QByteArray> m_roles;
5764
5865 void onFilterAdded(unity::dash::Filter::Ptr unityFilter);
5966 void onFilterChanged(unity::dash::Filter::Ptr unityFilter);