AusweisApp2
ProviderCategoryFilterModel.h
gehe zur Dokumentation dieser Datei
7#pragma once
8
9#include "ProviderModel.h"
10
11#include <QQmlEngine>
12#include <QSet>
13#include <QSortFilterProxyModel>
14#include <QStringList>
15
16class test_ProviderCategoryFilterModel;
17
18namespace 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 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:
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
A simple template renderer.
Definition: ActivationContext.h:15