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:
57  void fireCriteriaChanged();
58 };
59 
60 
61 } // namespace governikus
Q_INVOKABLE void addAdditionalResultCategories()
Definition: ProviderCategoryFilterModel.cpp:168
int rowCount
Definition: ProviderCategoryFilterModel.h:27
QString searchString
Definition: ProviderCategoryFilterModel.h:25
int additionalResultCount
Definition: ProviderCategoryFilterModel.h:28
Definition: ProviderModel.h:19
QStringList categories
Definition: ProviderCategoryFilterModel.h:26
Q_INVOKABLE void sortByCategoryFirst(bool pEnabled)
Definition: ProviderCategoryFilterModel.cpp:129
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
Q_INVOKABLE void updateCategorySelection(const QString &pCategory, bool pSelected)
Definition: ProviderCategoryFilterModel.cpp:148
bool filterAcceptsRow(int pSourceRow, const QModelIndex &pSourceParent) const override
Definition: ProviderCategoryFilterModel.cpp:70
Definition: ProviderCategoryFilterModel.h:21
Q_INVOKABLE void setCategorySelection(const QString &pCategory)
Definition: ProviderCategoryFilterModel.cpp:135