on xenial help sign in
Ouch.. forgot about actually providing Filters instance in the Scope.
71f1e58Pawel Stolowski
plugins/Unity/CMakeLists.txt+1−1
@@ -24,7 +24,7 @@ set(QMLPLUGIN_SRC
24 checkoptionfilter.cpp
24 checkoptionfilter.cpp
25 filter.cpp
25 filter.cpp
26 filteroption.cpp
26 filteroption.cpp
27− filter.cpp
27+ filters.cpp
28 genericlistmodel.cpp
28 genericlistmodel.cpp
29 categoryresults.cpp
29 categoryresults.cpp
30 plugin.cpp
30 plugin.cpp
plugins/Unity/filters.cpp+8−4
@@ -3,6 +3,7 @@
3 *
3 *
4 * Authors:
4 * Authors:
5 * Florian Boucault <florian.boucault@canonical.com>
5 * Florian Boucault <florian.boucault@canonical.com>
6+ * Pawel Stolowski <pawel.stolowski@canonical.com>
6 *
7 *
7 * This program is free software; you can redistribute it and/or modify
8 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * it under the terms of the GNU General Public License as published by
@@ -32,10 +33,6 @@
32Filters::Filters(unity::dash::Filters::Ptr unityFilters, QObject *parent) :
33Filters::Filters(unity::dash::Filters::Ptr unityFilters, QObject *parent) :
33 QAbstractListModel(parent), m_unityFilters(unityFilters)
34 QAbstractListModel(parent), m_unityFilters(unityFilters)
34{
35{
35− QHash<int, QByteArray> roles;
36− roles[Filters::RoleFilter] = "filter";
37− setRoleNames(roles);
38−
39 for (unsigned int i=0; i<m_unityFilters->count(); i++) {
36 for (unsigned int i=0; i<m_unityFilters->count(); i++) {
40 unity::dash::Filter::Ptr unityFilter = m_unityFilters->FilterAtIndex(i);
37 unity::dash::Filter::Ptr unityFilter = m_unityFilters->FilterAtIndex(i);
41 addFilter(unityFilter, i);
38 addFilter(unityFilter, i);
@@ -76,6 +73,13 @@ QVariant Filters::data(const QModelIndex& index, int role) const
76 }
73 }
77}
74}
78
75
76+QHash<int, QByteArray> Filters::roleNames() const
77+{
78+ QHash<int, QByteArray> roles;
79+ roles[Filters::RoleFilter] = "filter";
80+ return roles;
81+}
82+
79Filter* Filters::getFilter(const QString& id) const
83Filter* Filters::getFilter(const QString& id) const
80{
84{
81 Q_FOREACH (Filter* filter, m_filters) {
85 Q_FOREACH (Filter* filter, m_filters) {
plugins/Unity/filters.h+4−2
@@ -3,6 +3,7 @@
3 *
3 *
4 * Authors:
4 * Authors:
5 * Florian Boucault <florian.boucault@canonical.com>
5 * Florian Boucault <florian.boucault@canonical.com>
6+ * Pawel Stolowski <pawel.stolowski@canonical.com>
6 *
7 *
7 * This program is free software; you can redistribute it and/or modify
8 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * it under the terms of the GNU General Public License as published by
@@ -44,8 +45,9 @@ public:
44 RoleFilter
45 RoleFilter
45 };
46 };
46
47
47− QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
48+ QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
48− int rowCount(const QModelIndex& parent = QModelIndex()) const;
49+ int rowCount(const QModelIndex& parent = QModelIndex()) const override;
50+ QHash<int, QByteArray> roleNames() const override;
49
51
50 Q_INVOKABLE Filter* getFilter(const QString& id) const;
52 Q_INVOKABLE Filter* getFilter(const QString& id) const;
51
53
plugins/Unity/scope.cpp+6
@@ -102,6 +102,11 @@ QString Scope::formFactor() const
102 return m_formFactor;
102 return m_formFactor;
103}
103}
104
104
105+Filters* Scope::filters() const
106+{
107+ return m_filters.get();
108+}
109+
105void Scope::setSearchQuery(const QString& search_query)
110void Scope::setSearchQuery(const QString& search_query)
106{
111{
107 /* Checking for m_searchQuery.isNull() which returns true only when the string
112 /* Checking for m_searchQuery.isNull() which returns true only when the string
@@ -245,6 +250,7 @@ void Scope::setUnityScope(const unity::dash::Scope::Ptr& scope)
245 m_unityScope = scope;
250 m_unityScope = scope;
246
251
247 m_categories->setUnityScope(m_unityScope);
252 m_categories->setUnityScope(m_unityScope);
253+ m_filters.reset(new Filters(m_unityScope->filters, this));
248
254
249 m_unityScope->form_factor = m_formFactor.toStdString();
255 m_unityScope->form_factor = m_formFactor.toStdString();
250 /* Property change signals */
256 /* Property change signals */
plugins/Unity/scope.h+5
@@ -33,6 +33,7 @@
33#include "deelistmodel.h"
33#include "deelistmodel.h"
34
34
35#include "categories.h"
35#include "categories.h"
36+#include "filters.h"
36
37
37class Preview;
38class Preview;
38
39
@@ -49,6 +50,7 @@ class Scope : public QObject
49 Q_PROPERTY(QString shortcut READ shortcut NOTIFY shortcutChanged)
50 Q_PROPERTY(QString shortcut READ shortcut NOTIFY shortcutChanged)
50 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
51 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
51 Q_PROPERTY(Categories* categories READ categories NOTIFY categoriesChanged)
52 Q_PROPERTY(Categories* categories READ categories NOTIFY categoriesChanged)
53+ Q_PROPERTY(Filters* filters READ filters NOTIFY filtersChanged)
52
54
53 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
55 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
54 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
56 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
@@ -67,6 +69,7 @@ public:
67 QString shortcut() const;
69 QString shortcut() const;
68 bool connected() const;
70 bool connected() const;
69 Categories* categories() const;
71 Categories* categories() const;
72+ Filters* filters() const;
70 QString searchQuery() const;
73 QString searchQuery() const;
71 QString noResultsHint() const;
74 QString noResultsHint() const;
72 QString formFactor() const;
75 QString formFactor() const;
@@ -101,6 +104,7 @@ Q_SIGNALS:
101 void searchQueryChanged();
104 void searchQueryChanged();
102 void noResultsHintChanged();
105 void noResultsHintChanged();
103 void formFactorChanged();
106 void formFactorChanged();
107+ void filtersChanged();
104
108
105 // signals triggered by activate(..) or preview(..) requests.
109 // signals triggered by activate(..) or preview(..) requests.
106 void previewReady(Preview *preview);
110 void previewReady(Preview *preview);
@@ -124,6 +128,7 @@ private:
124
128
125 unity::dash::Scope::Ptr m_unityScope;
129 unity::dash::Scope::Ptr m_unityScope;
126 std::unique_ptr<Categories> m_categories;
130 std::unique_ptr<Categories> m_categories;
131+ std::unique_ptr<Filters> m_filters;
127 QString m_searchQuery;
132 QString m_searchQuery;
128 QString m_noResultsHint;
133 QString m_noResultsHint;
129 QString m_formFactor;
134 QString m_formFactor;