Add ScreenSaver.

This commit is contained in:
sunwen
2022-08-18 17:09:16 +08:00
parent 30df175f22
commit 13a29bcc94
16 changed files with 292 additions and 16 deletions

View File

@@ -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)

View File

@@ -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;