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