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  friend class ::test_ProviderCategoryFilterModel;
30 
31  private:
32  QString mSearchString;
33  QStringList mSelectedCategories;
34 
35  ProviderModel mProviderModel;
36 
37  [[nodiscard]] QString getSearchString() const;
38  void updateSearchString(const QString& pSearchString);
39  [[nodiscard]] QStringList getSelectedCategories() const;
40  [[nodiscard]] int getAdditionalResultCount() const;
41  [[nodiscard]] QStringList getFilteredProviderCategories() const;
42  [[nodiscard]] int resultCountForFilter(const QStringList& pCategories, const QString& pSearchString) const;
43  [[nodiscard]] bool rowMatchesFilter(int pSourceRow, const QModelIndex& pSourceParent, const QStringList& pSelectedCategories, const QString& pSearchString, bool pMatchCategoryType) const;
44 
45  protected:
46  [[nodiscard]] bool filterAcceptsRow(int pSourceRow, const QModelIndex& pSourceParent) const override;
47 
48  public:
50  ~ProviderCategoryFilterModel() override = default;
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
Definition: ProviderCategoryFilterModel.h:23
bool filterAcceptsRow(int pSourceRow, const QModelIndex &pSourceParent) const override
Definition: ProviderCategoryFilterModel.cpp:82
QString searchString
Definition: ProviderCategoryFilterModel.h:25
QStringList categories
Definition: ProviderCategoryFilterModel.h:26
Q_INVOKABLE void addAdditionalResultCategories()
Definition: ProviderCategoryFilterModel.cpp:198
Q_INVOKABLE void updateCategorySelection(const QString &pCategory, bool pSelected)
Definition: ProviderCategoryFilterModel.cpp:177
Q_INVOKABLE void setCategorySelection(const QString &pCategory)
Definition: ProviderCategoryFilterModel.cpp:164
Q_INVOKABLE void sortByCategoryFirst(bool pEnabled)
Definition: ProviderCategoryFilterModel.cpp:158
Q_INVOKABLE void setIncludeCategoriesInModel(bool pIncludeCategories)
Definition: ProviderCategoryFilterModel.cpp:152
int additionalResultCount
Definition: ProviderCategoryFilterModel.h:28
int rowCount
Definition: ProviderCategoryFilterModel.h:27
Definition: ProviderModel.h:21
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16