AusweisApp
Lade ...
Suche ...
Keine Treffer
ChatModel.h
gehe zur Dokumentation dieser Datei
1
4
5#pragma once
6
7#include "Env.h"
8#include "SingletonCreator.h"
11
12#include <QAbstractListModel>
13#include <QList>
14#include <QSet>
15#include <QSharedPointer>
16#include <QSortFilterProxyModel>
17#include <QtQml/qqmlregistration.h>
18
19
20class test_ChatModel;
21class test_UiPluginQml;
22
23
24namespace governikus
25{
26
27struct cvcertificate_st;
28
29class ChatModel
30 : public QAbstractListModel
31 , public SingletonCreator<ChatModel>
32{
33 Q_OBJECT
34 QML_ELEMENT
35 QML_SINGLETON
36
37 friend class Env;
38 friend class ::test_ChatModel;
39 friend class ::test_UiPluginQml;
40
41 Q_PROPERTY(QSortFilterProxyModel * optional READ getFilterOptionalModel CONSTANT)
42 Q_PROPERTY(QSortFilterProxyModel * required READ getFilterRequiredModel CONSTANT)
43 Q_PROPERTY(QSortFilterProxyModel * write READ getFilterWriteModel CONSTANT)
44
45 private:
46 QSharedPointer<WorkflowContext> mContext;
47 QList<AccessRight> mAllRights;
48 QSet<AccessRight> mOptionalRights;
49 QSet<AccessRight> mSelectedRights;
50 QSortFilterProxyModel mFilterOptionalModel;
51 QSortFilterProxyModel mFilterRequiredModel;
52 QSortFilterProxyModel mFilterReadModel;
53 QSortFilterProxyModel mFilterWriteModel;
54
55 enum ChatRoles
56 {
57 NAME_ROLE = Qt::UserRole + 1,
58 OPTIONAL_ROLE,
59 SELECTED_ROLE,
60 WRITE_RIGHT,
61 };
62
63 ChatModel();
64 ~ChatModel() override = default;
65
66 void initFilterModel(QSortFilterProxyModel& pModel, QAbstractItemModel* pSourceModel, int pFilterRole, const QString& pFilter) const;
67 void setOrderedAllRights(const QSet<AccessRight>& pAllRights);
68
69 private Q_SLOTS:
70 void onAuthenticationDataChanged(QSharedPointer<AccessRightManager> pAccessRightManager);
71
72 public:
73 void resetContext(const QSharedPointer<WorkflowContext>& pContext = QSharedPointer<WorkflowContext>());
74
75 [[nodiscard]] int rowCount(const QModelIndex& = QModelIndex()) const override;
76 [[nodiscard]] QVariant data(const QModelIndex& pIndex, int pRole = Qt::DisplayRole) const override;
77 [[nodiscard]] bool setData(const QModelIndex& pIndex, const QVariant& pValue, int pRole) override;
78 [[nodiscard]] QHash<int, QByteArray> roleNames() const override;
79
80 Q_INVOKABLE void transferAccessRights() const;
81 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterOptionalModel();
82 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterRequiredModel();
83 [[nodiscard]] Q_INVOKABLE QSortFilterProxyModel* getFilterWriteModel();
84};
85
86
87} // namespace governikus
Definition ChatModel.h:32
Q_INVOKABLE QSortFilterProxyModel * getFilterRequiredModel()
Definition ChatModel.cpp:211
int rowCount(const QModelIndex &=QModelIndex()) const override
Definition ChatModel.cpp:108
QSortFilterProxyModel * optional
Definition ChatModel.h:41
QSortFilterProxyModel * required
Definition ChatModel.h:42
Q_INVOKABLE QSortFilterProxyModel * getFilterWriteModel()
Definition ChatModel.cpp:217
void resetContext(const QSharedPointer< WorkflowContext > &pContext=QSharedPointer< WorkflowContext >())
Definition ChatModel.cpp:48
Q_INVOKABLE QSortFilterProxyModel * getFilterOptionalModel()
Definition ChatModel.cpp:205
QHash< int, QByteArray > roleNames() const override
Definition ChatModel.cpp:154
bool setData(const QModelIndex &pIndex, const QVariant &pValue, int pRole) override
Definition ChatModel.cpp:165
QSortFilterProxyModel * write
Definition ChatModel.h:43
QVariant data(const QModelIndex &pIndex, int pRole=Qt::DisplayRole) const override
Definition ChatModel.cpp:114
Q_INVOKABLE void transferAccessRights() const
Definition ChatModel.cpp:195
Definition SingletonCreator.h:22
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17