AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
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 
17 namespace governikus
18 {
19 
20 struct cvcertificate_st;
21 
22 class ChatModel
23  : public QAbstractListModel
24 {
25  Q_OBJECT
26  Q_PROPERTY(QSortFilterProxyModel * optional READ getFilterOptionalModel CONSTANT)
27  Q_PROPERTY(QSortFilterProxyModel * required READ getFilterRequiredModel CONSTANT)
28 
29  QSharedPointer<AuthContext> mAuthContext;
30  QList<AccessRight> mAllRights;
31  QSet<AccessRight> mOptionalRights, mSelectedRights;
32  QSortFilterProxyModel mFilterOptionalModel;
33  QSortFilterProxyModel mFilterRequiredModel;
34 
35  enum ChatRoles
36  {
37  NAME_ROLE = Qt::UserRole + 1,
40  };
41 
42  private:
43  void initFilterModel(QSortFilterProxyModel& pModel, const QString& pFilter);
44  void setOrderedAllRights(const QSet<AccessRight>& pAllRights);
45 
46  private Q_SLOTS:
47  void onAuthenticationDataChanged();
48 
49  public:
50  ChatModel(QObject* pParent = nullptr);
51 
52  void resetContext(const QSharedPointer<AuthContext>& pContext = QSharedPointer<AuthContext>());
53 
54  int rowCount(const QModelIndex& = QModelIndex()) const override;
55  QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
56  bool setData(const QModelIndex& pIndex, const QVariant& pValue, int pRole) override;
57  QHash<int, QByteArray> roleNames() const override;
58 
59  Q_INVOKABLE void transferAccessRights();
60  Q_INVOKABLE QSortFilterProxyModel* getFilterOptionalModel();
61  Q_INVOKABLE QSortFilterProxyModel* getFilterRequiredModel();
62 };
63 
64 
65 } /* namespace governikus */
QSet< AccessRight > mSelectedRights
Definition: ChatModel.h:31
QSortFilterProxyModel mFilterRequiredModel
Definition: ChatModel.h:33
Definition: AuthContext.h:47
Q_INVOKABLE void transferAccessRights()
Definition: ChatModel.cpp:207
Q_INVOKABLE QSortFilterProxyModel * getFilterRequiredModel()
Definition: ChatModel.cpp:221
QSortFilterProxyModel mFilterOptionalModel
Definition: ChatModel.h:32
int rowCount(const QModelIndex &=QModelIndex()) const override
Definition: ChatModel.cpp:134
QSortFilterProxyModel required
Definition: ChatModel.h:27
QList< AccessRight > mAllRights
Definition: ChatModel.h:30
QSortFilterProxyModel optional
Definition: ChatModel.h:26
ChatModel(QObject *pParent=nullptr)
Definition: ChatModel.cpp:18
void resetContext(const QSharedPointer< AuthContext > &pContext=QSharedPointer< AuthContext >())
Definition: ChatModel.cpp:48
QSet< AccessRight > mOptionalRights
Definition: ChatModel.h:31
Definition: ChatModel.h:37
QHash< int, QByteArray > roleNames() const override
Definition: ChatModel.cpp:167
bool setData(const QModelIndex &pIndex, const QVariant &pValue, int pRole) override
Definition: ChatModel.cpp:177
Definition: ChatModel.h:22
Definition: ChatModel.h:39
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: ChatModel.cpp:140
QSharedPointer< AuthContext > mAuthContext
Definition: ChatModel.h:29
Definition: ChatModel.h:38
ChatRoles
Definition: ChatModel.h:35
Q_INVOKABLE QSortFilterProxyModel * getFilterOptionalModel()
Definition: ChatModel.cpp:215