@@ -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