Banking_System_Client  1.0.0
Qt-based banking app for user/admin account management, transactions, secure server communication via PostgreSQL/Supabase.
BaseDialog.h
Go to the documentation of this file.
1 
7 #ifndef BASEDIALOG_H
8 #define BASEDIALOG_H
9 
10 #include <QDialog>
11 #include <QVBoxLayout>
12 #include <QHBoxLayout>
13 #include <QLabel>
14 #include <QPushButton>
15 #include <QVariantMap>
16 #include "ValidationStrategy.h"
17 #include "qtmaterialflatbutton.h"
18 #include "qtmaterialtextfield.h"
19 
25 class BaseDialog : public QDialog
26 {
27  Q_OBJECT
28 
29 public:
34  BaseDialog(QWidget* parent = nullptr);
35 
40  virtual QVariantMap getData() const = 0;
41 
42 protected:
46  virtual void setupUI() = 0;
47 
51  virtual void connectSignals();
52 
61  QtMaterialTextField* createInputField(QVBoxLayout* layout, const QString& labelText,
62  IValidationStrategy* validationStrategy, bool isPassword = false);
63 
68  void validateInput(QtMaterialTextField* field);
69 
74 
82  void setFieldValidityStyle(QtMaterialTextField* field, QLabel* errorLabel, const QString& errorMessage,
83  bool isValid);
84 
85  QMap<QtMaterialTextField*, IValidationStrategy*>
87  QMap<QtMaterialTextField*, QLabel*> errorLabels_;
88  QtMaterialFlatButton* confirmButton;
89  QtMaterialFlatButton* cancelButton;
90 };
91 
92 #endif // BASEDIALOG_H
Header file for validation strategies.
The BaseDialog class provides a base class for creating dialogs with validation support.
Definition: BaseDialog.h:26
QtMaterialFlatButton * confirmButton
The confirm button.
Definition: BaseDialog.h:88
void updateConfirmButtonState()
Updates the state of the confirm button based on the validity of the form.
Definition: BaseDialog.cpp:70
QMap< QtMaterialTextField *, QLabel * > errorLabels_
Stores error labels for input fields.
Definition: BaseDialog.h:87
virtual QVariantMap getData() const =0
Pure virtual function to get the data from the dialog.
QtMaterialFlatButton * cancelButton
The cancel button.
Definition: BaseDialog.h:89
void validateInput(QtMaterialTextField *field)
Validates the input of a specified field.
Definition: BaseDialog.cpp:50
void setFieldValidityStyle(QtMaterialTextField *field, QLabel *errorLabel, const QString &errorMessage, bool isValid)
Sets the validity style of an input field.
Definition: BaseDialog.cpp:81
BaseDialog(QWidget *parent=nullptr)
Constructor for BaseDialog.
Definition: BaseDialog.cpp:5
QMap< QtMaterialTextField *, IValidationStrategy * > validationStrategies_
Stores validation strategies for input fields.
Definition: BaseDialog.h:86
QtMaterialTextField * createInputField(QVBoxLayout *layout, const QString &labelText, IValidationStrategy *validationStrategy, bool isPassword=false)
Creates an input field with validation.
Definition: BaseDialog.cpp:22
virtual void setupUI()=0
Pure virtual function to set up the user interface.
virtual void connectSignals()
Connects signals for the dialog.
Definition: BaseDialog.cpp:9
Interface for validation strategies.
Definition: ValidationStrategy.h:19