on xenial help sign in
Add content_type property to category models
4a23d80Michal Hruby
plugins/Unity/categories.cpp+18−8
@@ -30,6 +30,7 @@ Categories::Categories(QObject* parent)
30 m_roles[Categories::RoleName] = "name";
30 m_roles[Categories::RoleName] = "name";
31 m_roles[Categories::RoleIcon] = "icon";
31 m_roles[Categories::RoleIcon] = "icon";
32 m_roles[Categories::RoleRenderer] = "renderer";
32 m_roles[Categories::RoleRenderer] = "renderer";
33+ m_roles[Categories::RoleContentType] = "content_type";
33 m_roles[Categories::RoleHints] = "hints";
34 m_roles[Categories::RoleHints] = "hints";
34 m_roles[Categories::RoleResults] = "results";
35 m_roles[Categories::RoleResults] = "results";
35 m_roles[Categories::RoleCount] = "count";
36 m_roles[Categories::RoleCount] = "count";
@@ -111,22 +112,31 @@ Categories::data(const QModelIndex& index, int role) const
111 return QVariant();
112 return QVariant();
112 }
113 }
113
114
114− if (role == RoleId) {
115+ switch (role) {
116+ case RoleId:
115 return QVariant::fromValue(index.row());
117 return QVariant::fromValue(index.row());
116− } else if (role == RoleName) {
118+ case RoleName:
117 return QVariant::fromValue(DeeListModel::data(index, 1)); //DISPLAY_NAME
119 return QVariant::fromValue(DeeListModel::data(index, 1)); //DISPLAY_NAME
118− } else if (role == RoleIcon) {
120+ case RoleIcon:
119 return QVariant::fromValue(DeeListModel::data(index, 2)); //ICON_HINT
121 return QVariant::fromValue(DeeListModel::data(index, 2)); //ICON_HINT
120− } else if (role == RoleRenderer) {
122+ case RoleRenderer:
121 return QVariant::fromValue(DeeListModel::data(index, 3)); //RENDERER_NAME
123 return QVariant::fromValue(DeeListModel::data(index, 3)); //RENDERER_NAME
124+ case RoleContentType:
125+ {
126+ auto hints = QVariant::fromValue(DeeListModel::data(index, 4)).toHash();
127+ return hints.contains("content-type") ?
128+ hints["content-type"] : QVariant(QString("default"));
129+ }
122− } else if (role == RoleHints) {
130+ case RoleHints:
123 return QVariant::fromValue(DeeListModel::data(index, 4)); //HINTS
131 return QVariant::fromValue(DeeListModel::data(index, 4)); //HINTS
124− } else if (role == RoleResults) {
132+ case RoleResults:
125 return QVariant::fromValue(getFilter(index.row()));
133 return QVariant::fromValue(getFilter(index.row()));
126− } else if (role == RoleCount) {
134+ case RoleCount:
135+ {
127 CategoryFilter* filter = getFilter(index.row());
136 CategoryFilter* filter = getFilter(index.row());
128 return QVariant::fromValue(filter->rowCount());
137 return QVariant::fromValue(filter->rowCount());
129− } else {
138+ }
139+ default:
130 return QVariant();
140 return QVariant();
131 }
141 }
132}
142}
plugins/Unity/categories.h+1
@@ -46,6 +46,7 @@ public:
46 RoleName,
46 RoleName,
47 RoleIcon,
47 RoleIcon,
48 RoleRenderer,
48 RoleRenderer,
49+ RoleContentType,
49 RoleHints,
50 RoleHints,
50 RoleResults,
51 RoleResults,
51 RoleCount
52 RoleCount