AusweisApp2
ChatModel.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include <QAbstractListModel>
10 #include <QList>
11 #include <QSet>
12 #include <QSharedPointer>
13 #include <QSortFilterProxyModel>
14 
15 #include "context/AuthContext.h"
16 #include "Env.h"
17 
18 class test_ChatModel;
19 
20 namespace governikus
21 {
22 
23 struct cvcertificate_st;
24 
25 class ChatModel
26  : public QAbstractListModel
27 {
28  Q_OBJECT
29  friend class Env;
30  friend class ::test_ChatModel;
31 
32  Q_PROPERTY(QSortFilterProxyModel * optional READ getFilterOptionalModel CONSTANT)
33  Q_PROPERTY(QSortFilterProxyModel * required READ getFilterRequiredModel CONSTANT)
34  Q_PROPERTY(QSortFilterProxyModel * write READ getFilterWriteModel CONSTANT)
35 
36  QSharedPointer<AuthContext> mAuthContext;
37  QList<AccessRight> mAllRights;
38  QSet<AccessRight> mOptionalRights, mSelectedRights;
39  QSortFilterProxyModel mFilterOptionalModel;
40  QSortFilterProxyModel mFilterRequiredModel;
41  QSortFilterProxyModel mFilterReadModel;
42  QSortFilterProxyModel mFilterWriteModel;
43 
44  enum ChatRoles
45  {
46  NAME_ROLE = Qt::UserRole + 1,
47  OPTIONAL_ROLE,
48  SELECTED_ROLE,
49  WRITE_RIGHT,
50  };
51 
52  private:
53  ChatModel();
54  ~ChatModel() override = default;
55 
56  void initFilterModel(QSortFilterProxyModel& pModel, QAbstractItemModel* pSourceModel, int pFilterRole, const QString& pFilter);
57  void setOrderedAllRights(const QSet<AccessRight>& pAllRights);
58 
59  private Q_SLOTS:
60  void onAuthenticationDataChanged(QSharedPointer<AccessRightManager> pAccessRightManager);
61 
62  public:
63  void resetContext(const QSharedPointer<AuthContext>& pContext = QSharedPointer<AuthContext>());
64 
65  int rowCount(const QModelIndex& = QModelIndex()) const override;
66  QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
67  bool setData(const QModelIndex& pIndex, const QVariant& pValue, int pRole) override;
68  QHash<int, QByteArray> roleNames() const override;
69 
70  Q_INVOKABLE void transferAccessRights();
71  Q_INVOKABLE QSortFilterProxyModel* getFilterOptionalModel();
72  Q_INVOKABLE QSortFilterProxyModel* getFilterRequiredModel();
73  Q_INVOKABLE QSortFilterProxyModel* getFilterWriteModel();
74 };
75 
76 
77 } // namespace governikus
Definition: AuthContext.h:47
Q_INVOKABLE void transferAccessRights()
Definition: ChatModel.cpp:184
Q_INVOKABLE QSortFilterProxyModel * getFilterRequiredModel()
Definition: ChatModel.cpp:198
int rowCount(const QModelIndex &=QModelIndex()) const override
Definition: ChatModel.cpp:106
QSortFilterProxyModel required
Definition: ChatModel.h:33
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
QSortFilterProxyModel optional
Definition: ChatModel.h:32
void resetContext(const QSharedPointer< AuthContext > &pContext=QSharedPointer< AuthContext >())
Definition: ChatModel.cpp:50
Q_INVOKABLE QSortFilterProxyModel * getFilterWriteModel()
Definition: ChatModel.cpp:204
Definition: Env.h:43
QHash< int, QByteArray > roleNames() const override
Definition: ChatModel.cpp:143
bool setData(const QModelIndex &pIndex, const QVariant &pValue, int pRole) override
Definition: ChatModel.cpp:154
Definition: ChatModel.h:25
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: ChatModel.cpp:112
QSortFilterProxyModel write
Definition: ChatModel.h:34
Q_INVOKABLE QSortFilterProxyModel * getFilterOptionalModel()
Definition: ChatModel.cpp:192