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 <QString>
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  QSet<QString> 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  int resultCountForFilter(const QSet<QString>& pCategories, const QString& pSearchString) const;
42  bool rowMatchesFilter(int pSourceRow, const QModelIndex& pSourceParent, const QSet<QString>& pSelectedCategories, const QString& pSearchString) const;
43 
44  protected:
45  bool filterAcceptsRow(int pSourceRow, const QModelIndex& pSourceParent) const override;
46 
47  public:
49  virtual ~ProviderCategoryFilterModel() override;
50 
51  Q_INVOKABLE void sortByCategoryFirst(bool pEnabled);
52  Q_INVOKABLE void setCategorySelection(const QString& pCategory);
53  Q_INVOKABLE void updateCategorySelection(const QString& pCategory, bool pSelected);
54  Q_INVOKABLE void addAdditionalResultCategories();
55 
56  Q_SIGNALS:
58 };
59 
60 
61 } // namespace governikus
governikus::ProviderModel::LONGDESCRIPTION
@ LONGDESCRIPTION
Definition: ProviderModel.h:43
governikus::ProviderModel::SORT_ROLE
@ SORT_ROLE
Definition: ProviderModel.h:54
governikus::ProviderModel::HOMEPAGE
@ HOMEPAGE
Definition: ProviderModel.h:46
governikus::ProviderCategoryFilterModel::rowCount
int rowCount
Definition: ProviderCategoryFilterModel.h:27
governikus::ProviderCategoryFilterModel::ProviderCategoryFilterModel
ProviderCategoryFilterModel()
Definition: ProviderCategoryFilterModel.cpp:113
governikus::ProviderCategoryFilterModel::setCategorySelection
Q_INVOKABLE void setCategorySelection(const QString &pCategory)
Definition: ProviderCategoryFilterModel.cpp:135
governikus::ProviderCategoryFilterModel::addAdditionalResultCategories
Q_INVOKABLE void addAdditionalResultCategories()
Definition: ProviderCategoryFilterModel.cpp:168
governikus::ProviderCategoryFilterModel::additionalResultCount
int additionalResultCount
Definition: ProviderCategoryFilterModel.h:28
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:40
governikus::ProviderCategoryFilterModel::~ProviderCategoryFilterModel
virtual ~ProviderCategoryFilterModel() override
Definition: ProviderCategoryFilterModel.cpp:124
governikus::ProviderModel::CATEGORY
@ CATEGORY
Definition: ProviderModel.h:39
governikus::ProviderCategoryFilterModel::updateCategorySelection
Q_INVOKABLE void updateCategorySelection(const QString &pCategory, bool pSelected)
Definition: ProviderCategoryFilterModel.cpp:148
governikus::ProviderCategoryFilterModel::filterAcceptsRow
bool filterAcceptsRow(int pSourceRow, const QModelIndex &pSourceParent) const override
Definition: ProviderCategoryFilterModel.cpp:70
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:44
governikus::ProviderCategoryFilterModel::sortByCategoryFirst
Q_INVOKABLE void sortByCategoryFirst(bool pEnabled)
Definition: ProviderCategoryFilterModel.cpp:129
governikus::ProviderModel::LONGNAME
@ LONGNAME
Definition: ProviderModel.h:41
ProviderModel.h
governikus::ProviderModel::getProviderCategories
static const QSet< QString > & getProviderCategories()
Definition: ProviderModel.cpp:198
ProviderCategoryFilterModel.h
governikus::ProviderModel::SHORTDESCRIPTION
@ SHORTDESCRIPTION
Definition: ProviderModel.h:42
governikus::ProviderCategoryFilterModel::fireCriteriaChanged
void fireCriteriaChanged()