AusweisApp
Lade ...
Suche ...
Keine Treffer
ChatModel.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "Env.h"
12#include "SingletonCreator.h"
15
16#include <QAbstractListModel>
17#include <QList>
18#include <QSet>
19#include <QSharedPointer>
20#include <QSortFilterProxyModel>
21#include <QtQml/qqmlregistration.h>
22
23
24class test_ChatModel;
25class test_UiPluginQml;
26
27
28namespace governikus
29{
30
31struct cvcertificate_st;
32
34 : public QAbstractListModel
35 , public SingletonCreator<ChatModel>
36{
40
41 friend class Env;
42 friend class ::test_ChatModel;
43 friend class ::test_UiPluginQml;
44
48
49 private:
50 QSharedPointer<WorkflowContext> mContext;
51 QList<AccessRight> mAllRights;
52 QSet<AccessRight> mOptionalRights;
53 QSet<AccessRight> mSelectedRights;
54 QSortFilterProxyModel mFilterOptionalModel;
55 QSortFilterProxyModel mFilterRequiredModel;
56 QSortFilterProxyModel mFilterReadModel;
57 QSortFilterProxyModel mFilterWriteModel;
58
59 enum ChatRoles
60 {
61 NAME_ROLE = Qt::UserRole + 1,
62 OPTIONAL_ROLE,
63 SELECTED_ROLE,
64 WRITE_RIGHT,
65 };
66
67 ChatModel();
68 ~ChatModel() override = default;
69
70 void initFilterModel(QSortFilterProxyModel& pModel, QAbstractItemModel* pSourceModel, int pFilterRole, const QString& pFilter) const;
71 void setOrderedAllRights(const QSet<AccessRight>& pAllRights);
72
73 private Q_SLOTS:
74 void onAuthenticationDataChanged(QSharedPointer<AccessRightManager> pAccessRightManager);
75
76 public:
78
79 [[nodiscard]] int rowCount(const QModelIndex& = QModelIndex()) const override;
80 [[nodiscard]] QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
81 [[nodiscard]] bool setData(const QModelIndex& pIndex, const QVariant& pValue, int pRole) override;
82 [[nodiscard]] QHash<int, QByteArray> roleNames() const override;
83
85 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterOptionalModel();
86 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterRequiredModel();
87 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterWriteModel();
88};
89
90
91} // namespace governikus
Definition ChatModel.h:36
Q_INVOKABLE QSortFilterProxyModel * getFilterRequiredModel()
Definition ChatModel.cpp:215
int rowCount(const QModelIndex &=QModelIndex()) const override
Definition ChatModel.cpp:112
QSortFilterProxyModel * optional
Definition ChatModel.h:45
QSortFilterProxyModel * required
Definition ChatModel.h:46
Q_INVOKABLE QSortFilterProxyModel * getFilterWriteModel()
Definition ChatModel.cpp:221
void resetContext(const QSharedPointer< WorkflowContext > &pContext=QSharedPointer< WorkflowContext >())
Definition ChatModel.cpp:52
Q_INVOKABLE QSortFilterProxyModel * getFilterOptionalModel()
Definition ChatModel.cpp:209
QHash< int, QByteArray > roleNames() const override
Definition ChatModel.cpp:158
bool setData(const QModelIndex &pIndex, const QVariant &pValue, int pRole) override
Definition ChatModel.cpp:169
QSortFilterProxyModel * write
Definition ChatModel.h:47
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition ChatModel.cpp:118
Q_INVOKABLE void transferAccessRights() const
Definition ChatModel.cpp:199
Definition Env.h:42
Definition SingletonCreator.h:22
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114