2022-07-19 14:15:00 +08:00
|
|
|
//
|
|
|
|
|
// Created by Krad on 2022/7/19.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#ifndef GUI_DIALOGMANAGER_H
|
|
|
|
|
#define GUI_DIALOGMANAGER_H
|
|
|
|
|
|
|
|
|
|
#include <QObject>
|
2022-07-20 16:45:33 +08:00
|
|
|
#include <mutex>
|
2022-07-19 14:15:00 +08:00
|
|
|
#include <QStack>
|
2022-07-20 16:45:33 +08:00
|
|
|
#include <atomic>
|
2022-07-19 14:15:00 +08:00
|
|
|
|
|
|
|
|
class QWidget;
|
|
|
|
|
class QDialog;
|
|
|
|
|
class GUIMessageDialog;
|
2022-07-20 16:45:33 +08:00
|
|
|
class QSqlTableModel;
|
2022-07-19 14:15:00 +08:00
|
|
|
|
|
|
|
|
class DialogManager:public QObject {
|
|
|
|
|
public:
|
|
|
|
|
static DialogManager *Default() {
|
|
|
|
|
static DialogManager manager;
|
|
|
|
|
return &manager;
|
|
|
|
|
}
|
|
|
|
|
|
2022-07-20 16:45:33 +08:00
|
|
|
DialogManager();
|
2022-07-19 14:15:00 +08:00
|
|
|
|
2022-07-20 16:45:33 +08:00
|
|
|
~DialogManager() override;
|
2022-07-19 14:15:00 +08:00
|
|
|
|
|
|
|
|
void init();
|
2022-07-21 10:39:24 +08:00
|
|
|
void setTopWidget(QWidget* widget);
|
|
|
|
|
void releaseTopWidget(QWidget* expectedTopWidget);
|
2022-07-20 16:45:33 +08:00
|
|
|
void requestLogin();
|
|
|
|
|
int requestAddAccount(QSqlTableModel* model);
|
|
|
|
|
int requestEditSelfAccount();
|
|
|
|
|
int requestEditAdminAccount(const QMap<QString, QVariant>& values);
|
|
|
|
|
void requestChangePassword();
|
2022-07-19 14:15:00 +08:00
|
|
|
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:
|
2022-07-20 16:45:33 +08:00
|
|
|
void clearMessageDialog();
|
|
|
|
|
|
|
|
|
|
QDialog* mFunctionDialog;
|
|
|
|
|
GUIMessageDialog* mMessageDialog;
|
2022-07-21 10:39:24 +08:00
|
|
|
QWidget* topWidget;
|
|
|
|
|
std::mutex mutex;
|
|
|
|
|
int mDialogCount = 0;
|
2022-07-19 14:15:00 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif //GUI_DIALOGMANAGER_H
|