AusweisApp2
PinSettingsWidget.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
10 #include "RandomPinDialog.h"
11 #include "ReaderInfo.h"
12 
13 #include <QPointer>
14 #include <QSharedPointer>
15 #include <QWidget>
16 
17 namespace Ui
18 {
19 class PinSettingsWidget;
20 } // namespace Ui
21 
22 namespace governikus
23 {
24 
26  : public QWidget
27 {
28  Q_OBJECT
29 
30  public:
31  static const int SCALEWIDTH = 200;
32 
33  enum class Mode
34  {
35  Normal,
37  };
38 
39  public:
40  PinSettingsWidget(QWidget* pParent = nullptr);
41  virtual ~PinSettingsWidget() override;
42 
43  void setContext(const QSharedPointer<ChangePinContext>& pContext);
44  void cancelWorkflow();
45  void continueWorkflow();
46 
47  QString getCan() const;
48  QString getPin() const;
49  QString getPuk() const;
50  QString getNewPin() const;
51  void updatePasswordFields();
52  void updatePinButton(bool pEnabled);
53  void clearPasswords();
54  void setPasswordFocus();
55 
56 
57  Mode getMode() const
58  {
59  return mMode;
60  }
61 
62 
63  void setMode(Mode pMode);
64  QString getButtonText() const;
65  void setUseScreenKeyboard(bool pUseScreenKeyboard);
66 
67  bool getPinButtonEnabled() const;
68  bool getCancelButtonEnabled() const;
69 
70  Q_SIGNALS:
72 
73  public Q_SLOTS:
74  void updateReaders();
76 
77  protected:
78  virtual void paintEvent(QPaintEvent*) override;
79  virtual void showEvent(QShowEvent* pEvent) override;
80  virtual void hideEvent(QHideEvent* pEvent) override;
81  virtual void changeEvent(QEvent* pEvent) override;
82 
83  private Q_SLOTS:
84  void onCanTextEdited(const QString& pText = QString());
85  void onOldPinTextEdited(const QString& pText = QString());
86  void onNewPinTextEdited(const QString& pText = QString());
87  void onRepeatNewPinTextEdited(const QString& pText = QString());
88  void onPukTextEdited(const QString& pText = QString());
89  void focusPUK();
90  void focusPIN();
91  void focusCAN();
92  void onRandomPinButtonClicked();
93  void onRandomPukButtonClicked();
94 
95  private:
96  void updateCancelButton(bool pEnabled);
97  void setUserInputEnabled(bool pEnabled);
98  void setupPinBasicPage(const ReaderInfo& pReaderInfo);
99  void setupPinComfortPage(const ReaderInfo& pReaderInfo);
100  void setupPinSuccessfullyChangedPage(const ReaderInfo& pReaderInfo);
101  void setupChangePinHeader(int pRetryCounter, bool pIsBasicReader);
102 
103  bool isCanFieldVisible() const;
104  bool isPukFieldVisible() const;
105 
106  QVector<ReaderInfo> getReaderWithNPA(const QVector<ReaderInfo>& pReaderInfos);
107  void updateReadersWithoutNPA(const QVector<ReaderInfo>& pReaderInfos);
108  bool updateReadersForOneNPA(const ReaderInfo& pReaderInfo);
109 
110  void fillInfoDescription(const QString& pTitle, const QString& pMessage);
111 
112  QScopedPointer<Ui::PinSettingsWidget> mUi;
113  Mode mMode;
114  QSharedPointer<ChangePinContext> mContext;
115  int mRetryCounter;
116  bool mPinDeactivated;
117  bool mPinButtonEnabled;
118  bool mCancelButtonEnabled;
119 
120  QString mPinSettingsInfoTitle;
121  QString mPinSettingsInfoDescription;
122  QPointer<RandomPinDialog> mRandomPinDialog;
123 };
124 
125 } // namespace governikus
QString getCan() const
Definition: PinSettingsWidget.cpp:143
void cancelWorkflow()
Definition: PinSettingsWidget.cpp:124
void setUseScreenKeyboard(bool pUseScreenKeyboard)
Definition: PinSettingsWidget.cpp:260
void setMode(Mode pMode)
Definition: PinSettingsWidget.cpp:211
Dialog to display information about the application.
Definition: AboutDialog.h:12
QString getButtonText() const
Definition: PinSettingsWidget.cpp:217
QString getPuk() const
Definition: PinSettingsWidget.cpp:155
void setContext(const QSharedPointer< ChangePinContext > &pContext)
Definition: PinSettingsWidget.cpp:102
Mode getMode() const
Definition: PinSettingsWidget.h:57
bool getPinButtonEnabled() const
Definition: PinSettingsWidget.cpp:270
virtual ~PinSettingsWidget() override
Definition: PinSettingsWidget.cpp:97
QString getNewPin() const
Definition: PinSettingsWidget.cpp:161
Definition: ReaderInfo.h:16
virtual void showEvent(QShowEvent *pEvent) override
Definition: PinSettingsWidget.cpp:402
void clearPasswords()
Definition: PinSettingsWidget.cpp:183
Definition: PinSettingsWidget.h:25
virtual void changeEvent(QEvent *pEvent) override
Definition: PinSettingsWidget.cpp:788
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
void updatePasswordFields()
Definition: PinSettingsWidget.cpp:167
bool getCancelButtonEnabled() const
Definition: PinSettingsWidget.cpp:276
void continueWorkflow()
Definition: PinSettingsWidget.cpp:133
void updatePinButton(bool pEnabled)
Definition: PinSettingsWidget.cpp:176
void updateReaders()
Definition: PinSettingsWidget.cpp:343
virtual void paintEvent(QPaintEvent *) override
Definition: PinSettingsWidget.cpp:393
void onBackspacePressedOnApply()
Definition: PinSettingsWidget.cpp:385
QString getPin() const
Definition: PinSettingsWidget.cpp:149
PinSettingsWidget(QWidget *pParent=nullptr)
Definition: PinSettingsWidget.cpp:23
void setPasswordFocus()
Definition: PinSettingsWidget.cpp:194
Mode
Definition: PinSettingsWidget.h:33
static const int SCALEWIDTH
Definition: PinSettingsWidget.h:31
virtual void hideEvent(QHideEvent *pEvent) override
Definition: PinSettingsWidget.cpp:413