on xenial help sign in
Ouch.. forgot about actually providing Filters instance in the Scope.
commit71f1e58a254836d567e7f39a7d5e423e444a62d1 authorPawel Stolowski <pawel.stolowski@canonical.com> dateFri 12 Jul 2013, 10:27 (13 years ago) parent156d4fe
5 files changed+24−7
plugins/Unity/CMakeLists.txt+1−1 plugins/Unity/filters.cpp+8−4 plugins/Unity/filters.h+4−2 plugins/Unity/scope.cpp+6 plugins/Unity/scope.h+5
plugins/Unity/CMakeLists.txt+1−1
@@ -24,7 +24,7 @@ set(QMLPLUGIN_SRC
2424 checkoptionfilter.cpp
2525 filter.cpp
2626 filteroption.cpp
27− filter.cpp
27+ filters.cpp
2828 genericlistmodel.cpp
2929 categoryresults.cpp
3030 plugin.cpp
plugins/Unity/filters.cpp+8−4
@@ -3,6 +3,7 @@
33 *
44 * Authors:
55 * Florian Boucault <florian.boucault@canonical.com>
6+ * Pawel Stolowski <pawel.stolowski@canonical.com>
67 *
78 * This program is free software; you can redistribute it and/or modify
89 * it under the terms of the GNU General Public License as published by
@@ -32,10 +33,6 @@
3233Filters::Filters(unity::dash::Filters::Ptr unityFilters, QObject *parent) :
3334 QAbstractListModel(parent), m_unityFilters(unityFilters)
3435{
35− QHash<int, QByteArray> roles;
36− roles[Filters::RoleFilter] = "filter";
37− setRoleNames(roles);
38−
3936 for (unsigned int i=0; i<m_unityFilters->count(); i++) {
4037 unity::dash::Filter::Ptr unityFilter = m_unityFilters->FilterAtIndex(i);
4138 addFilter(unityFilter, i);
@@ -76,6 +73,13 @@ QVariant Filters::data(const QModelIndex& index, int role) const
7673 }
7774}
7875
76+QHash<int, QByteArray> Filters::roleNames() const
77+{
78+ QHash<int, QByteArray> roles;
79+ roles[Filters::RoleFilter] = "filter";
80+ return roles;
81+}
82+
7983Filter* Filters::getFilter(const QString& id) const
8084{
8185 Q_FOREACH (Filter* filter, m_filters) {
plugins/Unity/filters.h+4−2
@@ -3,6 +3,7 @@
33 *
44 * Authors:
55 * Florian Boucault <florian.boucault@canonical.com>
6+ * Pawel Stolowski <pawel.stolowski@canonical.com>
67 *
78 * This program is free software; you can redistribute it and/or modify
89 * it under the terms of the GNU General Public License as published by
@@ -44,8 +45,9 @@ public:
4445 RoleFilter
4546 };
4647
47− QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
48− int rowCount(const QModelIndex& parent = QModelIndex()) const;
48+ QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
49+ int rowCount(const QModelIndex& parent = QModelIndex()) const override;
50+ QHash<int, QByteArray> roleNames() const override;
4951
5052 Q_INVOKABLE Filter* getFilter(const QString& id) const;
5153
plugins/Unity/scope.cpp+6
@@ -102,6 +102,11 @@ QString Scope::formFactor() const
102102 return m_formFactor;
103103}
104104
105+Filters* Scope::filters() const
106+{
107+ return m_filters.get();
108+}
109+
105110void Scope::setSearchQuery(const QString& search_query)
106111{
107112 /* 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)
245250 m_unityScope = scope;
246251
247252 m_categories->setUnityScope(m_unityScope);
253+ m_filters.reset(new Filters(m_unityScope->filters, this));
248254
249255 m_unityScope->form_factor = m_formFactor.toStdString();
250256 /* Property change signals */
plugins/Unity/scope.h+5
@@ -33,6 +33,7 @@
3333#include "deelistmodel.h"
3434
3535#include "categories.h"
36+#include "filters.h"
3637
3738class Preview;
3839
@@ -49,6 +50,7 @@ class Scope : public QObject
4950 Q_PROPERTY(QString shortcut READ shortcut NOTIFY shortcutChanged)
5051 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
5152 Q_PROPERTY(Categories* categories READ categories NOTIFY categoriesChanged)
53+ Q_PROPERTY(Filters* filters READ filters NOTIFY filtersChanged)
5254
5355 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
5456 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
@@ -67,6 +69,7 @@ public:
6769 QString shortcut() const;
6870 bool connected() const;
6971 Categories* categories() const;
72+ Filters* filters() const;
7073 QString searchQuery() const;
7174 QString noResultsHint() const;
7275 QString formFactor() const;
@@ -101,6 +104,7 @@ Q_SIGNALS:
101104 void searchQueryChanged();
102105 void noResultsHintChanged();
103106 void formFactorChanged();
107+ void filtersChanged();
104108
105109 // signals triggered by activate(..) or preview(..) requests.
106110 void previewReady(Preview *preview);
@@ -124,6 +128,7 @@ private:
124128
125129 unity::dash::Scope::Ptr m_unityScope;
126130 std::unique_ptr<Categories> m_categories;
131+ std::unique_ptr<Filters> m_filters;
127132 QString m_searchQuery;
128133 QString m_noResultsHint;
129134 QString m_formFactor;