Refactor DialogManager.1

This commit is contained in:
Krad
2022-07-20 16:45:33 +08:00
parent 18331b61cf
commit acc53c463c
8 changed files with 141 additions and 57 deletions

View File

@@ -6,11 +6,14 @@
#define GUI_DIALOGMANAGER_H
#include <QObject>
#include <mutex>
#include <QStack>
#include <atomic>
class QWidget;
class QDialog;
class GUIMessageDialog;
class QSqlTableModel;
class DialogManager:public QObject {
public:
@@ -19,20 +22,27 @@ public:
return &manager;
}
DialogManager() = default;
DialogManager();
~DialogManager() override = default;
~DialogManager() override;
void init();
QWidget* getTopWidget();
void requestLogin();
int requestAddAccount(QSqlTableModel* model);
int requestEditSelfAccount();
int requestEditAdminAccount(const QMap<QString, QVariant>& values);
void requestChangePassword();
void raiseDeviceError(QObject* parent, QObject* msg);
void invokeOperationStart(QObject* parent, QObject* msg);
void invokeOperationProgress(QObject* parent, QObject* msg);
void invokeOperationPending(QObject* parent, QObject* msg);
void invokeOperationEnd(QObject* parent, QObject* msg);
private:
QDialog* mDialog = nullptr;
GUIMessageDialog* mMessageDialog = nullptr;
void clearMessageDialog();
QDialog* mFunctionDialog;
GUIMessageDialog* mMessageDialog;
QStack<QDialog*> topWidgetStore;
};