on xenial help sign in
Expose rendererHint to shell.
0be0183Michal Hruby
Dash/GenericScopeView.qml+2−2
@@ -86,7 +86,7 @@ ScopeView {
86 right: parent.right
86 right: parent.right
87 }
87 }
88
88
89− source: getRenderer(model.renderer, model.contentType)
89+ source: getRenderer(model.renderer, model.contentType, model.rendererHint)
90
90
91 onLoaded: {
91 onLoaded: {
92 if (item.enableHeightBehavior !== undefined && item.enableHeightBehaviorOnNextCreation !== undefined) {
92 if (item.enableHeightBehavior !== undefined && item.enableHeightBehaviorOnNextCreation !== undefined) {
@@ -200,7 +200,7 @@ ScopeView {
200 }
200 }
201 }
201 }
202
202
203− function getRenderer(rendererId, contentType) {
203+ function getRenderer(rendererId, contentType, rendererHint) {
204 if (rendererId == "default") {
204 if (rendererId == "default") {
205 rendererId = getDefaultRendererId(contentType);
205 rendererId = getDefaultRendererId(contentType);
206 }
206 }
plugins/Unity/categories.cpp+6
@@ -40,6 +40,7 @@ Categories::Categories(QObject* parent)
40 m_roles[Categories::RoleIcon] = "icon";
40 m_roles[Categories::RoleIcon] = "icon";
41 m_roles[Categories::RoleRenderer] = "renderer";
41 m_roles[Categories::RoleRenderer] = "renderer";
42 m_roles[Categories::RoleContentType] = "contentType";
42 m_roles[Categories::RoleContentType] = "contentType";
43+ m_roles[Categories::RoleRendererHint] = "rendererHint";
43 m_roles[Categories::RoleProgressSource] = "progressSource";
44 m_roles[Categories::RoleProgressSource] = "progressSource";
44 m_roles[Categories::RoleHints] = "hints";
45 m_roles[Categories::RoleHints] = "hints";
45 m_roles[Categories::RoleResults] = "results";
46 m_roles[Categories::RoleResults] = "results";
@@ -209,6 +210,11 @@ Categories::data(const QModelIndex& index, int role) const
209 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
210 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
210 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
211 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
211 }
212 }
213+ case RoleRendererHint:
214+ {
215+ auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
216+ return hints.contains("renderer-hint") ? hints["renderer-hint"] : QVariant(QString());
217+ }
212 case RoleProgressSource:
218 case RoleProgressSource:
213 {
219 {
214 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
220 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
plugins/Unity/categories.h+1
@@ -47,6 +47,7 @@ public:
47 RoleIcon,
47 RoleIcon,
48 RoleRenderer,
48 RoleRenderer,
49 RoleContentType,
49 RoleContentType,
50+ RoleRendererHint,
50 RoleProgressSource,
51 RoleProgressSource,
51 RoleHints,
52 RoleHints,
52 RoleResults,
53 RoleResults,
plugins/Unity/categoryresults.cpp+14
@@ -46,6 +46,7 @@ CategoryResults::CategoryResults(QObject* parent)
46 m_roles[CategoryResults::RoleComment] = "comment";
46 m_roles[CategoryResults::RoleComment] = "comment";
47 m_roles[CategoryResults::RoleDndUri] = "dndUri";
47 m_roles[CategoryResults::RoleDndUri] = "dndUri";
48 m_roles[CategoryResults::RoleMetadata] = "metadata";
48 m_roles[CategoryResults::RoleMetadata] = "metadata";
49+ m_roles[CategoryResults::RoleRendererHints] = "rendererHints";
49}
50}
50
51
51int CategoryResults::categoryIndex() const
52int CategoryResults::categoryIndex() const
@@ -100,6 +101,19 @@ CategoryResults::data(const QModelIndex& index, int role) const
100 return DeeListModel::data(index, ResultsColumn::DND_URI);
101 return DeeListModel::data(index, ResultsColumn::DND_URI);
101 case RoleMetadata:
102 case RoleMetadata:
102 return DeeListModel::data(index, ResultsColumn::METADATA);
103 return DeeListModel::data(index, ResultsColumn::METADATA);
104+ case RoleRendererHints:
105+ {
106+ QVariantHash hash(DeeListModel::data(index, ResultsColumn::METADATA).toHash());
107+ if (hash.contains("content")) {
108+ QVariantMap hints;
109+ QVariantHash innerHash(hash["content"].toHash());
110+ if (innerHash.contains("scope_disabled")) {
111+ hints["scope_disabled"] = innerHash["scope_disabled"];
112+ }
113+ return hints.empty() ? QVariant() : QVariant::fromValue(hints);
114+ }
115+ return QVariant();
116+ }
103 default:
117 default:
104 return QVariant();
118 return QVariant();
105 }
119 }
plugins/Unity/categoryresults.h+2−1
@@ -43,7 +43,8 @@ public:
43 RoleTitle,
43 RoleTitle,
44 RoleComment,
44 RoleComment,
45 RoleDndUri,
45 RoleDndUri,
46− RoleMetadata
46+ RoleMetadata,
47+ RoleRendererHints
47 };
48 };
48
49
49 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
50 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
tests/mocks/Unity/fake_categories.cpp+6
@@ -42,6 +42,7 @@ Categories::Categories(QObject* parent)
42 m_roles[Categories::RoleIcon] = "icon";
42 m_roles[Categories::RoleIcon] = "icon";
43 m_roles[Categories::RoleRenderer] = "renderer";
43 m_roles[Categories::RoleRenderer] = "renderer";
44 m_roles[Categories::RoleContentType] = "contentType";
44 m_roles[Categories::RoleContentType] = "contentType";
45+ m_roles[Categories::RoleRendererHint] = "rendererHint";
45 m_roles[Categories::RoleHints] = "hints";
46 m_roles[Categories::RoleHints] = "hints";
46 m_roles[Categories::RoleResults] = "results";
47 m_roles[Categories::RoleResults] = "results";
47 m_roles[Categories::RoleCount] = "count";
48 m_roles[Categories::RoleCount] = "count";
@@ -229,6 +230,11 @@ Categories::data(const QModelIndex& index, int role) const
229 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
230 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
230 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
231 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
231 }
232 }
233+ case RoleRendererHint:
234+ {
235+ auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
236+ return hints.contains("renderer-hint") ? hints["renderer-hint"] : QVariant(QString());
237+ }
232 case RoleHints:
238 case RoleHints:
233 return DeeListModel::data(index, CategoryColumn::HINTS);
239 return DeeListModel::data(index, CategoryColumn::HINTS);
234 case RoleResults:
240 case RoleResults:
tests/mocks/Unity/fake_categories.h+1
@@ -39,6 +39,7 @@ public:
39 RoleIcon,
39 RoleIcon,
40 RoleRenderer,
40 RoleRenderer,
41 RoleContentType,
41 RoleContentType,
42+ RoleRendererHint,
42 RoleHints,
43 RoleHints,
43 RoleResults,
44 RoleResults,
44 RoleCount
45 RoleCount