AusweisApp2
AppController.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "ActivationHandler.h"
10 #include "EnumHelper.h"
11 
12 #include <QAbstractNativeEventFilter>
13 #include <QSharedPointer>
14 
15 class test_AppController;
16 
17 namespace governikus
18 {
19 
21  NONE,
22  AUTH,
23  SELF,
24  PIN,
25  READER_SETTINGS,
26  REMOTE_SERVICE)
27 
28 
29 class WorkflowController;
30 class WorkflowRequest;
31 class CommandLineParser;
32 
33 class AppController final
34  : public QObject
35  , public QAbstractNativeEventFilter
36 {
37  Q_OBJECT
38 
39  private:
40  friend class ::test_AppController;
41  Q_DISABLE_COPY(AppController)
42 
43  friend class SignalHandler;
44  friend class CommandLineParser;
45 
46  static bool cShowUi;
47  Action mCurrentAction;
48  QScopedPointer<WorkflowRequest> mWaitingRequest;
49  QScopedPointer<WorkflowController> mActiveController;
50  bool mShutdownRunning;
51  const UIPlugIn* mUiDomination;
52  bool mRestartApplication;
53 
54  bool canStartNewAction();
55  void completeShutdown();
56 
57  public:
58  AppController();
59  virtual ~AppController() override;
60 
61  virtual bool eventFilter(QObject* pObj, QEvent* pEvent) override;
62  bool nativeEventFilter(const QByteArray& pEventType, void* pMessage, long* pResult) override;
63 
64  bool start();
65 
66  bool shouldApplicationRestart() const;
67 
68  Q_SIGNALS:
69  void fireStarted();
70  void fireShutdown();
71  void fireWorkflowStarted(QSharedPointer<WorkflowContext> pContext);
72  void fireWorkflowFinished(QSharedPointer<WorkflowContext> pContext);
73  void fireShowUi(UiModule pModule);
74  void fireHideUi();
75  void fireShowUserInformation(const QString& pInformationMessage);
77  void fireProxyAuthenticationRequired(const QNetworkProxy& pProxy, QAuthenticator* pAuthenticator);
79  void fireUiDomination(const UIPlugIn* pUi, const QString& pInformation, bool pAccepted);
81 
82  private Q_SLOTS:
83  void doShutdown();
84  void onUiPlugin(UIPlugIn* pPlugin);
85  void onWorkflowFinished();
86  void onCloseReminderFinished(bool pDontRemindAgain);
87  void onChangePinRequested();
88  void onSelfAuthenticationRequested();
89  void onAuthenticationRequest(const QSharedPointer<ActivationContext>& pActivationContext);
90  void onRemoteServiceRequested();
91  void onLanguageChanged();
92  void onUILoaderShutdownComplete();
93  void onUiDominationRequested(const UIPlugIn* pUi, const QString& pInformation);
94  void onUiDominationRelease();
95  void onRestartApplicationRequested();
96 
97  private:
98  template<typename Controller, typename Context> bool startNewWorkflow(Action pAction, const QSharedPointer<Context>& pContext);
99 
100 };
101 
102 } // namespace governikus
Definition: ActivationContext.h:19
Definition: AppController.h:36
bool shouldApplicationRestart() const
Definition: AppController.cpp:206
void fireWorkflowStarted(QSharedPointer< WorkflowContext > pContext)
void fireWorkflowFinished(QSharedPointer< WorkflowContext > pContext)
void fireProxyAuthenticationRequired(const QNetworkProxy &pProxy, QAuthenticator *pAuthenticator)
void fireShowUserInformation(const QString &pInformationMessage)
virtual bool eventFilter(QObject *pObj, QEvent *pEvent) override
Definition: AppController.cpp:123
bool start()
Definition: AppController.cpp:152
void fireShowUi(UiModule pModule)
void fireUiDomination(const UIPlugIn *pUi, const QString &pInformation, bool pAccepted)
bool nativeEventFilter(const QByteArray &pEventType, void *pMessage, long *pResult) override
Definition: AppController.cpp:547
Definition: CommandLineParser.h:16
Definition: SignalHandler.h:25
Definition: WorkflowContext.h:23
Definition: WorkflowController.h:20
Definition: AppController.cpp:43
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
defineEnumType(KeyAgreementType, DH, ECDH) defineEnumType(MappingType
Method used for key agreement:
AUTH
Definition: MsgTypes.h:25