AusweisApp2
ProviderCategoryFilterModel.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "ProviderModel.h"
10 
11 #include <QQmlEngine>
12 #include <QSet>
13 #include <QSortFilterProxyModel>
14 #include <QStringList>
15 
16 class test_ProviderCategoryFilterModel;
17 
18 namespace governikus
19 {
20 
22  : public QSortFilterProxyModel
23 {
24  Q_OBJECT
25  Q_PROPERTY(QString searchString READ getSearchString WRITE updateSearchString NOTIFY fireCriteriaChanged)
26  Q_PROPERTY(QStringList categories READ getSelectedCategories NOTIFY fireCriteriaChanged)
27  Q_PROPERTY(int rowCount READ rowCount NOTIFY fireCriteriaChanged)
28  Q_PROPERTY(int additionalResultCount READ getAdditionalResultCount NOTIFY fireCriteriaChanged)
29 
30  private:
31  friend class ::test_ProviderCategoryFilterModel;
32  QString mSearchString;
33  QStringList mSelectedCategories;
34 
35  ProviderModel mProviderModel;
36 
37  QString getSearchString() const;
38  void updateSearchString(const QString& pSearchString);
39  QStringList getSelectedCategories() const;
40  int getAdditionalResultCount() const;
41  QStringList getFilteredProviderCategories() const;
42  int resultCountForFilter(const QStringList& pCategories, const QString& pSearchString) const;
43  bool rowMatchesFilter(int pSourceRow, const QModelIndex& pSourceParent, const QStringList& pSelectedCategories, const QString& pSearchString, bool pMatchCategoryType) const;
44 
45  protected:
46  bool filterAcceptsRow(int pSourceRow, const QModelIndex& pSourceParent) const override;
47 
48  public:
51 
52  Q_INVOKABLE void setIncludeCategoriesInModel(bool pIncludeCategories);
53  Q_INVOKABLE void sortByCategoryFirst(bool pEnabled);
54  Q_INVOKABLE void setCategorySelection(const QString& pCategory);
55  Q_INVOKABLE void updateCategorySelection(const QString& pCategory, bool pSelected);
56  Q_INVOKABLE void addAdditionalResultCategories();
57 
58  Q_SIGNALS:
60 };
61 
62 
63 } // namespace governikus
governikus::ProviderModel::LONGDESCRIPTION
@ LONGDESCRIPTION
Definition: ProviderModel.h:44
governikus::ProviderModel::SORT_ROLE
@ SORT_ROLE
Definition: ProviderModel.h:55
governikus::ProviderModel::TYPE
@ TYPE
Definition: ProviderModel.h:56
governikus::ProviderCategoryFilterModel::setIncludeCategoriesInModel
Q_INVOKABLE void setIncludeCategoriesInModel(bool pIncludeCategories)
Definition: ProviderCategoryFilterModel.cpp:159
governikus::ProviderModel::HOMEPAGE
@ HOMEPAGE
Definition: ProviderModel.h:47
governikus::ProviderCategoryFilterModel::rowCount
int rowCount
Definition: ProviderCategoryFilterModel.h:27
governikus::ProviderCategoryFilterModel::ProviderCategoryFilterModel
ProviderCategoryFilterModel()
Definition: ProviderCategoryFilterModel.cpp:143
governikus::ProviderCategoryFilterModel::setCategorySelection
Q_INVOKABLE void setCategorySelection(const QString &pCategory)
Definition: ProviderCategoryFilterModel.cpp:171
governikus::ProviderCategoryFilterModel::addAdditionalResultCategories
Q_INVOKABLE void addAdditionalResultCategories()
Definition: ProviderCategoryFilterModel.cpp:205
governikus::ProviderCategoryFilterModel::additionalResultCount
int additionalResultCount
Definition: ProviderCategoryFilterModel.h:28
governikus::ProviderModel::getIncludeCategories
bool getIncludeCategories() const
Definition: ProviderModel.cpp:231
governikus::ProviderCategoryFilterModel::searchString
QString searchString
Definition: ProviderCategoryFilterModel.h:25
governikus::ProviderModel
Definition: ProviderModel.h:21
governikus::ProviderCategoryFilterModel::categories
QStringList categories
Definition: ProviderCategoryFilterModel.h:26
governikus::ProviderModel::SHORTNAME
@ SHORTNAME
Definition: ProviderModel.h:41
governikus::ProviderCategoryFilterModel::~ProviderCategoryFilterModel
~ProviderCategoryFilterModel() override
Definition: ProviderCategoryFilterModel.cpp:154
governikus::ProviderModel::CATEGORY
@ CATEGORY
Definition: ProviderModel.h:40
governikus::ProviderCategoryFilterModel::updateCategorySelection
Q_INVOKABLE void updateCategorySelection(const QString &pCategory, bool pSelected)
Definition: ProviderCategoryFilterModel.cpp:184
governikus::ProviderModel::getProviderCategories
static const QStringList & getProviderCategories()
Definition: ProviderModel.cpp:237
governikus::ProviderCategoryFilterModel::filterAcceptsRow
bool filterAcceptsRow(int pSourceRow, const QModelIndex &pSourceParent) const override
Definition: ProviderCategoryFilterModel.cpp:82
governikus::ProviderCategoryFilterModel
Definition: ProviderCategoryFilterModel.h:23
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::ProviderModel::ADDRESS
@ ADDRESS
Definition: ProviderModel.h:45
governikus::ProviderCategoryFilterModel::sortByCategoryFirst
Q_INVOKABLE void sortByCategoryFirst(bool pEnabled)
Definition: ProviderCategoryFilterModel.cpp:165
governikus::ProviderModel::LONGNAME
@ LONGNAME
Definition: ProviderModel.h:42
ProviderModel.h
governikus::ProviderModel::setIncludeCategories
void setIncludeCategories(bool pIncludeCategories)
Definition: ProviderModel.cpp:223
ProviderCategoryFilterModel.h
governikus::ProviderModel::SHORTDESCRIPTION
@ SHORTDESCRIPTION
Definition: ProviderModel.h:43
governikus::ProviderCategoryFilterModel::fireCriteriaChanged
void fireCriteriaChanged()