13#include <QSharedPointer>
16class test_WorkflowModel;
40 Q_PROPERTY(QString currentState READ getCurrentState NOTIFY fireCurrentStateChanged)
41 Q_PROPERTY(QString resultString READ getResultString NOTIFY fireResultChanged)
42 Q_PROPERTY(
bool error READ isError NOTIFY fireResultChanged)
43 Q_PROPERTY(
bool errorIsMasked READ isMaskedError NOTIFY fireResultChanged)
44 Q_PROPERTY(
bool pukInoperative READ isPukInoperative NOTIFY fireResultChanged)
45 Q_PROPERTY(governikus::EnumReaderManagerPluginType::ReaderManagerPluginType readerPluginType READ getReaderPluginType WRITE setReaderPluginType NOTIFY fireReaderPluginTypeChanged)
46 Q_PROPERTY(QList<ReaderManagerPluginType> supportedPluginTypes READ getSupportedReaderPluginTypes NOTIFY fireSupportedPluginTypesChanged)
47 Q_PROPERTY(
bool isBasicReader READ isBasicReader NOTIFY fireSelectedReaderChanged)
48 Q_PROPERTY(
bool isRemoteReader READ isRemoteReader NOTIFY fireSelectedReaderChanged)
49 Q_PROPERTY(
bool isCurrentSmartCardAllowed READ isCurrentSmartCardAllowed NOTIFY fireIsCurrentSmartCardAllowedChanged)
50 Q_PROPERTY(QString eidTypeMismatchError READ eidTypeMismatchError NOTIFY fireEidTypeMismatchErrorChanged)
51 Q_PROPERTY(
bool hasNextWorkflowPending READ getNextWorkflowPending NOTIFY fireNextWorkflowPendingChanged)
52 Q_PROPERTY(governikus::EnumGlobalStatusCode::GlobalStatusCode statusCode READ getStatusCode NOTIFY fireResultChanged)
53 Q_PROPERTY(QString statusCodeDisplayString READ getStatusCodeDisplayString NOTIFY fireResultChanged)
54 Q_PROPERTY(QString statusHintText READ getStatusHintText NOTIFY fireResultChanged)
55 Q_PROPERTY(QString statusHintTitle READ getStatusHintTitle NOTIFY fireResultChanged)
56 Q_PROPERTY(QString statusHintActionText READ getStatusHintActionText NOTIFY fireResultChanged)
57 Q_PROPERTY(governikus::EnumGAnimation::GAnimation statusCodeAnimation READ getStatusCodeAnimation NOTIFY fireResultChanged)
58 Q_PROPERTY(
bool showRemoveCardFeedback READ showRemoveCardFeedback WRITE setRemoveCardFeedback NOTIFY fireRemoveCardFeedbackChanged)
59 Q_PROPERTY(
bool cardInitiallyAppeared READ getCardInitiallyAppeared NOTIFY fireHasCardChanged)
60 Q_PROPERTY(
bool hasCard READ hasCard NOTIFY fireHasCardChanged)
61 Q_PROPERTY(governikus::EnumCardReturnCode::CardReturnCode lastReturnCode READ getLastReturnCode NOTIFY fireLastReturnCodeChanged)
62 friend class ::test_WorkflowModel;
65 QSharedPointer<WorkflowContext> mContext;
67 bool mRemoteScanWasRunning;
69 void insertCard(ReaderManagerPluginType pType)
const;
73 ~WorkflowModel()
override =
default;
76 void resetWorkflowContext(
const QSharedPointer<WorkflowContext>& pContext = QSharedPointer<WorkflowContext>());
78 [[nodiscard]] QString getCurrentState()
const;
79 [[nodiscard]]
virtual QString getResultString()
const;
80 [[nodiscard]]
bool isError()
const;
81 [[nodiscard]]
bool isMaskedError()
const;
82 [[nodiscard]]
bool isPukInoperative()
const;
83 [[nodiscard]] CardReturnCode getLastReturnCode()
const;
85 [[nodiscard]] ReaderManagerPluginType getReaderPluginType()
const;
86 void setReaderPluginType(ReaderManagerPluginType pReaderPluginType);
88 [[nodiscard]]
bool isBasicReader()
const;
89 [[nodiscard]]
bool isRemoteReader()
const;
90 [[nodiscard]]
bool getCardInitiallyAppeared()
const;
91 [[nodiscard]]
bool hasCard()
const;
93 [[nodiscard]]
bool isCurrentSmartCardAllowed()
const;
95 [[nodiscard]]
virtual QList<ReaderManagerPluginType> getSupportedReaderPluginTypes()
const;
97 [[nodiscard]]
bool getNextWorkflowPending()
const;
99 [[nodiscard]] GlobalStatus::Code getStatusCode()
const;
100 [[nodiscard]] QString getStatusCodeDisplayString()
const;
101 [[nodiscard]]
virtual GAnimation getStatusCodeAnimation()
const;
103 [[nodiscard]] QString getStatusHintText()
const;
104 [[nodiscard]] QString getStatusHintTitle()
const;
105 [[nodiscard]] QString getStatusHintActionText()
const;
106 [[nodiscard]] Q_INVOKABLE
bool invokeStatusHintAction();
108 [[nodiscard]]
bool showRemoveCardFeedback()
const;
109 void setRemoveCardFeedback(
bool pEnabled);
111 Q_INVOKABLE
void insertSmartCard()
const;
112 Q_INVOKABLE
void insertSimulator()
const;
113 Q_INVOKABLE
void cancelWorkflow();
114 Q_INVOKABLE
void startScanExplicitly();
115 Q_INVOKABLE
void continueWorkflow();
116 Q_INVOKABLE
void setInitialPluginType();
117 [[nodiscard]] Q_INVOKABLE
bool shouldSkipResultView()
const;
118 [[nodiscard]] Q_INVOKABLE
bool isCancellationByUser()
const;
119 [[nodiscard]] Q_INVOKABLE QString getEmailHeader()
const;
120 [[nodiscard]] Q_INVOKABLE QString getEmailBody(
bool pPercentEncoding =
false,
bool pAddLogNotice =
false)
const;
121 Q_INVOKABLE
void sendResultMail()
const;
123 [[nodiscard]] QString eidTypeMismatchError()
const;
126 void onApplicationStateChanged(
bool pIsAppInForeground);
127 void onPaceResultUpdated();
130 void fireWorkflowStarted();
131 void fireCurrentStateChanged(
const QString& pState);
132 void fireStateEntered(
const QString& pState);
133 void fireResultChanged();
134 void fireReaderPluginTypeChanged(
bool pExplicitStart =
false);
135 void fireSelectedReaderChanged();
136 void fireIsCurrentSmartCardAllowedChanged();
137 void fireReaderImageChanged();
138 void fireNextWorkflowPendingChanged();
139 void fireSupportedPluginTypesChanged();
140 void fireRemoveCardFeedbackChanged();
141 void fireHasCardChanged();
142 void fireEidTypeMismatchErrorChanged();
143 void fireShowUiRequest(UiModule pModule);
144 void fireWorkflowFinished(
bool pSuccess);
145 void fireOnPinUnlocked();
146 void fireOnPasswordUsed();
147 void fireOnCanSuccess();
148 void fireLastReturnCodeChanged();
#define defineEnumTypeQmlExposed(enumName,...)
Definition EnumHelper.h:88
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17