Add ScreenSaver.
This commit is contained in:
@@ -23,8 +23,10 @@
|
||||
#include "network/GetIPDialog.h"
|
||||
#include "network/GetRouteDialog.h"
|
||||
|
||||
#include "appvals/AppGlobalValues.h"
|
||||
#include "windows/LoginDialog.h"
|
||||
#include "screensaver/ScreenSaverWindow.h"
|
||||
|
||||
#include "appvals/AppGlobalValues.h"
|
||||
#include "json/jsonobject.h"
|
||||
#include "shimlib/ShimLib.h"
|
||||
|
||||
@@ -36,6 +38,7 @@ namespace
|
||||
DialogManager::DialogManager()
|
||||
: QObject()
|
||||
, mFunctionDialog(nullptr)
|
||||
, mScreenSaverWindow(nullptr)
|
||||
, mOperationMessageDialog(nullptr)
|
||||
, mSyncDialog(nullptr)
|
||||
, mTopWidget(nullptr)
|
||||
@@ -52,6 +55,7 @@ void DialogManager::init(QWidget* aParent) {
|
||||
connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd,this,&DialogManager::invokeOperationEnd);
|
||||
MultyMessageDialogManager::getInstance()->setDialogParent(aParent);
|
||||
mTopWidget = aParent;
|
||||
mScreenSaverWindow = new ScreenSaverWindow();
|
||||
}
|
||||
|
||||
//得考虑多线程的问题
|
||||
@@ -84,12 +88,25 @@ void DialogManager::requestLogin(QWidget* aParent)
|
||||
if (!mFunctionDialog){
|
||||
mFunctionDialog = new LoginDialog(aParent);
|
||||
}
|
||||
setTopWidget(mFunctionDialog);
|
||||
mFunctionDialog->setWindowModality(Qt::WindowModal);
|
||||
mFunctionDialog->exec();
|
||||
while (QDialog::Accepted != mFunctionDialog->result())
|
||||
{
|
||||
mFunctionDialog->exec();
|
||||
}
|
||||
releaseTopWidget(mFunctionDialog);
|
||||
}
|
||||
|
||||
void DialogManager::requestScreenSaverPlay()
|
||||
{
|
||||
setFocusToTopDialog();
|
||||
mScreenSaverWindow->play();
|
||||
}
|
||||
|
||||
void DialogManager::requestScreenSaverStop(bool aIsStopLocker)
|
||||
{
|
||||
mScreenSaverWindow->stop(aIsStopLocker);
|
||||
}
|
||||
|
||||
int DialogManager::requestAddAccount(QSqlTableModel* model) {
|
||||
@@ -308,10 +325,12 @@ void DialogManager::raiseDeviceError(QObject *parent, QObject *msg) {
|
||||
dialog->showExitButton();
|
||||
setTopWidget(dialog);
|
||||
dialog->setWindowModality(Qt::WindowModal);
|
||||
mScreenSaverWindow->stop(true);
|
||||
dialog->showFullScreen ();
|
||||
dialog->exec();
|
||||
releaseTopWidget(dialog);
|
||||
dialog->deleteLater();
|
||||
mScreenSaverWindow->startLocker();
|
||||
}
|
||||
|
||||
// 扫描过程 dialog 只能为最底层,并且会被error dialog 清除!
|
||||
@@ -408,6 +427,7 @@ void DialogManager::clearMessageDialog() {
|
||||
|
||||
DialogManager::~DialogManager() {
|
||||
clearMessageDialog();
|
||||
delete mScreenSaverWindow;
|
||||
}
|
||||
|
||||
void DialogManager::raiseMultyMessageDialog(const QString& aMessage, MessageLevel aMessageLevel)
|
||||
|
||||
@@ -16,6 +16,7 @@ class GUIMessageDialog;
|
||||
class QSqlTableModel;
|
||||
class PatientInformation;
|
||||
class LoginDialog;
|
||||
class ScreenSaverWindow;
|
||||
|
||||
enum MessageLevel:unsigned int;
|
||||
|
||||
@@ -43,6 +44,8 @@ public:
|
||||
|
||||
void init(QWidget* aParent);
|
||||
void requestLogin(QWidget* aParent);
|
||||
void requestScreenSaverPlay();
|
||||
void requestScreenSaverStop(bool aIsStopLocker = false);
|
||||
int requestAddAccount(QSqlTableModel* model);
|
||||
int requestEditSelfAccount();
|
||||
int requestEditAdminAccount(const QMap<QString, QVariant>& values);
|
||||
@@ -78,6 +81,7 @@ private:
|
||||
|
||||
private:
|
||||
LoginDialog* mFunctionDialog;
|
||||
ScreenSaverWindow* mScreenSaverWindow;
|
||||
QPointer<GUIMessageDialog> mOperationMessageDialog;
|
||||
QPointer<GUIMessageDialog> mSyncDialog;
|
||||
QWidget* mTopWidget;
|
||||
|
||||
Reference in New Issue
Block a user