Banking_System_Client  1.0.0
Qt-based banking app for user/admin account management, transactions, secure server communication via PostgreSQL/Supabase.
AdminWidget.h
Go to the documentation of this file.
1 
9 #ifndef ADMINWIDGET_H
10 #define ADMINWIDGET_H
11 
12 #include <QWidget>
13 #include <QVBoxLayout>
14 #include <QLabel>
15 #include <QLineEdit>
16 #include <QStackedWidget>
17 #include <QTableWidget>
18 #include "qtmaterialtabs.h"
19 #include "qtmaterialflatbutton.h"
20 #include "qtmaterialdialog.h"
21 #include "qtmaterialsnackbar.h"
22 #include "qtmaterialtextfield.h"
23 #include "qtmaterialfab.h"
24 #include "RequestManager.h"
25 
26 #include <QVariantMap>
27 
28 
44 class AdminWidget : public QWidget
45 {
46  Q_OBJECT
47 
48 public:
56  AdminWidget(QString email, QString first_name, QWidget* parent = nullptr);
57 
58 signals:
62  void logout();
63 
64 public slots:
70  void onDatabaseContentUpdated(const QList<QMap<QString, QString>>& data);
71 
77  void onTransactionsFetched(const QList<QMap<QString, QString>>& transactions);
78 
84  void onSuccessfullRequest(QString message);
85 
91  void onFailedRequest(QString message);
92 
93 private slots:
97  void onUpdateEmail();
98 
102  void onUpdatePassword();
103 
107  void onLogoutClicked();
108 
112  void onLogoutConfirmed();
113 
117  void updateDatabaseTable();
118 
122  void updateTransactionsTable();
123 
127  void onUpdateUserClicked();
128 
132  void onDeleteUserClicked();
133 
137  void onCreateNewUserClicked();
138 
142  void onUserSelectionChanged();
143 
144 private:
150  QWidget* createDatabaseTab();
151 
157  QWidget* createTransactionsTab();
158 
164  QWidget* createSettingsTab();
165 
171  QVBoxLayout* createTabLayout();
172 
176  void setupFloatingActionButtons();
177 
178  QString admin_email_;
179  QString admin_new_email_;
180  QString admin_first_name_;
181  QList<QMap<QString, QString>> transactions_;
182  QList<QMap<QString, QString>> databaseContent_;
183  RequestManager* requestManager;
184 
185  QtMaterialFlatButton* welcomeLabel;
186  QtMaterialSnackbar* notificationSnackbar;
187  QtMaterialTabs* tabs;
188  QStackedWidget* tabContents;
189  QtMaterialDialog* logoutDialog;
190 
191  QTableWidget* databaseTable;
192  QTableWidget* transactionsTable;
193 
194  QtMaterialFloatingActionButton* updateUserFab;
195  QtMaterialFloatingActionButton* deleteUserFab;
196  QtMaterialFloatingActionButton* createNewUserFab;
197 
198  QVariantMap selectedUserData;
199 };
200 
201 #endif // ADMINWIDGET_H
Header file for the RequestManager class.
Provides an interface for administrative tasks within the banking system.
Definition: AdminWidget.h:45
void onSuccessfullRequest(QString message)
Slot for handling successful request messages.
Definition: AdminWidget.cpp:355
void logout()
Signal emitted when the admin logs out.
AdminWidget(QString email, QString first_name, QWidget *parent=nullptr)
Constructs an AdminWidget object.
Definition: AdminWidget.cpp:15
void onDatabaseContentUpdated(const QList< QMap< QString, QString >> &data)
Slot for handling updates to the database content.
Definition: AdminWidget.cpp:276
void onTransactionsFetched(const QList< QMap< QString, QString >> &transactions)
Slot for handling fetched transaction history.
Definition: AdminWidget.cpp:317
void onFailedRequest(QString message)
Slot for handling failed request messages.
Definition: AdminWidget.cpp:368
Manages the creation and dispatching of requests in the system.
Definition: RequestManager.h:31