Banking_System_Client  1.0.0
Qt-based banking app for user/admin account management, transactions, secure server communication via PostgreSQL/Supabase.
UIManager.h
Go to the documentation of this file.
1 #ifndef UIMANAGER_H
2 #define UIMANAGER_H
3 
4 #include <QMainWindow>
5 #include <QStackedWidget>
6 #include <QVBoxLayout>
7 #include <QHBoxLayout>
8 #include <QLabel>
9 #include <QJsonDocument>
10 #include <QMessageBox>
11 #include "loginwidget.h"
12 #include "AdminWidget.h"
13 #include "UserWidget.h"
14 #include "RequestManager.h"
15 #include "ResponseManager.h"
16 
23 class UIManager : public QObject
24 {
25  Q_OBJECT
26 
27 private:
28  QMainWindow* mainWindow;
29  QStackedWidget* stackedWidget;
30  LoginWidget* loginWidget;
31  UserWidget* userWidget;
32  AdminWidget* adminWidget;
33  QString host;
34  quint16 port;
35  QString first_name;
36  QString role;
37  QString message;
38  ResponseManager* responseManager;
39  RequestManager* requestManager;
46  explicit UIManager(QObject* parent = nullptr);
47 
48 public:
53  ~UIManager();
54 
58  UIManager(const UIManager&) = delete;
59 
63  void operator=(const UIManager&) = delete;
64 
70  static UIManager* getInstance(QObject* parent = nullptr);
71 
72 signals:
77  void makeRequest(QJsonObject Data);
78 
84  void requestConnection(const QString& host, quint16 port);
85 
90 
91 public slots:
96  void responseReady(QJsonObject Data);
97 
102  void requestReady(QJsonObject Data);
103 
108  void logout();
109 
114  void createLoginWidget();
115 
121  void createAdminWidget(QString email, QString first_name);
122 
130  void createUserWidget(QString email, QString first_name, QString account_number, QString balance);
131 
136  void onSuccessfullNotification(QString message);
137 
142  void onFailedNotification(QString message);
143 
147  void closeAdminWidget();
148 
152  void closeUserWidget();
153 
157  void closeLoginWidget();
158 
164  void connectToTheServer(const QString& host, quint16 port);
165 
170 
175  void onConnectionResponse(bool status);
176 };
177 
178 #endif // UIMANAGER_H
Header file for the AdminWidget class.
Header file for the RequestManager class.
Header file for the UserWidget class.
Provides an interface for administrative tasks within the banking system.
Definition: AdminWidget.h:45
The LoginWidget class provides a user interface for logging into the banking system.
Definition: loginwidget.h:29
Manages the creation and dispatching of requests in the system.
Definition: RequestManager.h:31
Manages the responses received from the server.
Definition: ResponseManager.h:18
Definition: UIManager.h:24
void responseReady(QJsonObject Data)
Slot to handle responses from the server.
Definition: UIManager.cpp:40
UIManager(const UIManager &)=delete
Deleted copy constructor to prevent copying.
void onSuccessfullNotification(QString message)
Displays a successful notification.
Definition: UIManager.cpp:115
void createUserWidget(QString email, QString first_name, QString account_number, QString balance)
Creates the user widget.
Definition: UIManager.cpp:100
void disconnectFromTheServer()
Disconnects from the server.
Definition: UIManager.cpp:181
void closeUserWidget()
Closes the user widget.
Definition: UIManager.cpp:159
void logout()
Logs out the current user.
Definition: UIManager.cpp:50
void makeRequest(QJsonObject Data)
Signal emitted when a request is ready to be sent to the server.
void createLoginWidget()
Creates the login widget.
Definition: UIManager.cpp:67
void createAdminWidget(QString email, QString first_name)
Creates the admin widget.
Definition: UIManager.cpp:82
void onFailedNotification(QString message)
Displays a failed notification.
Definition: UIManager.cpp:131
void requestDisconnection()
Signal emitted to request a disconnection from the server.
void closeAdminWidget()
Closes the admin widget.
Definition: UIManager.cpp:147
void closeLoginWidget()
Closes the login widget.
Definition: UIManager.cpp:170
void onConnectionResponse(bool status)
Handles the server connection response.
Definition: UIManager.cpp:186
static UIManager * getInstance(QObject *parent=nullptr)
Gets the singleton instance of UIManager.
Definition: UIManager.cpp:34
void operator=(const UIManager &)=delete
Deleted assignment operator to prevent copying.
void requestConnection(const QString &host, quint16 port)
Signal emitted to request a connection to the server.
void connectToTheServer(const QString &host, quint16 port)
Connects to the server.
Definition: UIManager.cpp:176
void requestReady(QJsonObject Data)
Slot to handle requests that are ready to be sent.
Definition: UIManager.cpp:45
~UIManager()
Destructor for the UIManager class.
Definition: UIManager.cpp:28
The UserWidget class provides a user interface for managing user accounts, performing transactions,...
Definition: UserWidget.h:44