AusweisApp2
Lade ...
Suche ...
Keine Treffer
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 "Env.h"
16#include "context/AuthContext.h"
17
18class test_ChatModel;
19
20namespace governikus
21{
22
23struct cvcertificate_st;
24
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 private:
37 QSharedPointer<AuthContext> mAuthContext;
38 QList<AccessRight> mAllRights;
39 QSet<AccessRight> mOptionalRights;
40 QSet<AccessRight> mSelectedRights;
41 QSortFilterProxyModel mFilterOptionalModel;
42 QSortFilterProxyModel mFilterRequiredModel;
43 QSortFilterProxyModel mFilterReadModel;
44 QSortFilterProxyModel mFilterWriteModel;
45
46 enum ChatRoles
47 {
48 NAME_ROLE = Qt::UserRole + 1,
49 OPTIONAL_ROLE,
50 SELECTED_ROLE,
51 WRITE_RIGHT,
52 };
53
54 ChatModel();
55 ~ChatModel() override = default;
56
57 void initFilterModel(QSortFilterProxyModel& pModel, QAbstractItemModel* pSourceModel, int pFilterRole, const QString& pFilter);
58 void setOrderedAllRights(const QSet<AccessRight>& pAllRights);
59
60 private Q_SLOTS:
61 void onAuthenticationDataChanged(QSharedPointer<AccessRightManager> pAccessRightManager);
62
63 public:
64 void resetContext(const QSharedPointer<AuthContext>& pContext = QSharedPointer<AuthContext>());
65
66 [[nodiscard]] int rowCount(const QModelIndex& = QModelIndex()) const override;
67 [[nodiscard]] QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
68 [[nodiscard]] bool setData(const QModelIndex& pIndex, const QVariant& pValue, int pRole) override;
69 [[nodiscard]] QHash<int, QByteArray> roleNames() const override;
70
71 Q_INVOKABLE void transferAccessRights();
72 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterOptionalModel();
73 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterRequiredModel();
74 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterWriteModel();
75};
76
77
78} // namespace governikus
Definition: ChatModel.h:27
Q_INVOKABLE QSortFilterProxyModel * getFilterRequiredModel()
Definition: ChatModel.cpp:198
int rowCount(const QModelIndex &=QModelIndex()) const override
Definition: ChatModel.cpp:106
void resetContext(const QSharedPointer< AuthContext > &pContext=QSharedPointer< AuthContext >())
Definition: ChatModel.cpp:50
QSortFilterProxyModel * optional
Definition: ChatModel.h:32
QSortFilterProxyModel * required
Definition: ChatModel.h:33
Q_INVOKABLE QSortFilterProxyModel * getFilterWriteModel()
Definition: ChatModel.cpp:204
Q_INVOKABLE void transferAccessRights()
Definition: ChatModel.cpp:184
Q_INVOKABLE QSortFilterProxyModel * getFilterOptionalModel()
Definition: ChatModel.cpp:192
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
QSortFilterProxyModel * write
Definition: ChatModel.h:34
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition: ChatModel.cpp:112
Definition: Env.h:44
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16