AusweisApp2
GenericWorkflowGui.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "AppQtMainWidget.h"
11 #include "step/StepGui.h"
12 #include "WorkflowGui.h"
13 #include "WorkflowQtWidget.h"
14 
15 #include <QSharedPointer>
16 #include <QWidget>
17 
18 
19 namespace governikus
20 {
21 
22 template<typename CONTEXT>
24  : public WorkflowGui
25 {
26  protected:
29  QSharedPointer<StepGui> mStepGui;
30  QSharedPointer<CONTEXT> mContext;
31 
32  public:
33  GenericWorkflowGui(const QSharedPointer<WorkflowContext>& pContext, AppQtMainWidget* pParentWidget, WorkflowQtWidget* pWidget)
34  : WorkflowGui()
35  , mParentWidget(pParentWidget)
36  , mWidget(pWidget)
37  , mStepGui(nullptr)
38  , mContext(pContext.objectCast<CONTEXT>())
39  {
40  Q_ASSERT(mContext != nullptr);
42  }
43 
44 
45  virtual void deactivate() override
46  {
47  deactivateCurrentStepUi();
48  }
49 
50 
51  virtual void activateStepUi(const QSharedPointer<StepGui>& pStepUi)
52  {
53  Q_ASSERT(pStepUi);
54  if (mStepGui == pStepUi)
55  {
56  return;
57  }
58 
59  deactivateCurrentStepUi();
60 
61  mStepGui = pStepUi;
62  if (mWidget != nullptr)
63  {
66  QObject::connect(mStepGui.data(), &StepGui::fireDeactivated, this, [this](){
67  deactivateCurrentStepUi();
68  });
69  }
70  pStepUi->activate();
71  }
72 
73  private:
74  void deactivateCurrentStepUi()
75  {
76  if (mStepGui == nullptr)
77  {
78  return;
79  }
80 
81  mStepGui->deactivate();
82  if (mWidget != nullptr)
83  {
86  }
87  mStepGui.clear();
88  }
89 
90 
91 };
92 
93 } // namespace governikus
Definition: AppQtMainWidget.h:32
Definition: GenericWorkflowGui.h:25
QSharedPointer< CONTEXT > mContext
Definition: GenericWorkflowGui.h:30
QSharedPointer< StepGui > mStepGui
Definition: GenericWorkflowGui.h:29
AppQtMainWidget * mParentWidget
Definition: GenericWorkflowGui.h:27
WorkflowQtWidget * mWidget
Definition: GenericWorkflowGui.h:28
virtual void activateStepUi(const QSharedPointer< StepGui > &pStepUi)
Definition: GenericWorkflowGui.h:51
virtual void deactivate() override
Definition: GenericWorkflowGui.h:45
GenericWorkflowGui(const QSharedPointer< WorkflowContext > &pContext, AppQtMainWidget *pParentWidget, WorkflowQtWidget *pWidget)
Definition: GenericWorkflowGui.h:33
void setCancelButtonState(ButtonState pState)
void setForwardButtonState(ButtonState pState, const QString &pText)
Definition: WorkflowGui.h:33
Definition: WorkflowQtWidget.h:21
void setCancelButtonState(ButtonState pState)
Definition: WorkflowQtWidget.cpp:70
void setForwardButtonState(ButtonState pState, const QString &pText=QString())
Definition: WorkflowQtWidget.cpp:64
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15