Refactory lock screen and screen saver.

This commit is contained in:
sunwen
2024-05-06 16:51:15 +08:00
parent 6f13ef7dc7
commit 29fea313ad
8 changed files with 21 additions and 52 deletions

View File

@@ -121,11 +121,6 @@ void DialogManager::requestScreenSaverPlay()
mScreenSaverWindow->play(); mScreenSaverWindow->play();
} }
void DialogManager::requestScreenSaverStop(bool aIsStopLocker)
{
mScreenSaverWindow->stop(aIsStopLocker);
}
DialogResult DialogManager::requestResetAdminPwd() DialogResult DialogManager::requestResetAdminPwd()
{ {
AdminSPwdDialog dialog(mTopWidget); AdminSPwdDialog dialog(mTopWidget);
@@ -487,15 +482,10 @@ void DialogManager::raiseDeviceError(QObject *parent, QObject *msg) {
dialog->showExitButton(); dialog->showExitButton();
setTopWidget(dialog); setTopWidget(dialog);
dialog->setWindowModality(Qt::WindowModal); dialog->setWindowModality(Qt::WindowModal);
mScreenSaverWindow->stop(true);
dialog->showFullScreen (); dialog->showFullScreen ();
dialog->exec(); dialog->exec();
releaseTopWidget(dialog); releaseTopWidget(dialog);
dialog->deleteLater(); dialog->deleteLater();
if (nullptr != mTopWidget && !mTopWidget->inherits("GUIMessageDialog"))
{
mScreenSaverWindow->startLocker();
}
} }
// 扫描过程 dialog 只能为最底层并且会被error dialog 清除! // 扫描过程 dialog 只能为最底层并且会被error dialog 清除!

View File

@@ -44,7 +44,6 @@ public:
void init(QWidget* aParent); void init(QWidget* aParent);
void requestLogin(QWidget* aParent); void requestLogin(QWidget* aParent);
void requestScreenSaverPlay(); void requestScreenSaverPlay();
void requestScreenSaverStop(bool aIsStopLocker = false);
DialogResult requestResetAdminPwd(); DialogResult requestResetAdminPwd();
int requestAddAccount(QSqlTableModel* model); int requestAddAccount(QSqlTableModel* model);
int requestEditSelfAccount(); int requestEditSelfAccount();

View File

@@ -94,7 +94,6 @@ int main(int argc, char* argv[])
DialogManager::Default()->init(&w); DialogManager::Default()->init(&w);
UserOperationLog::Default()->init(); UserOperationLog::Default()->init();
Locker::getInstance()->start();
QObject::connect(TouchScreenSignalSender::getInstance(), SIGNAL(touchScreen()), Locker::getInstance(), SLOT(refreshTimer())); QObject::connect(TouchScreenSignalSender::getInstance(), SIGNAL(touchScreen()), Locker::getInstance(), SLOT(refreshTimer()));
QList<Qt::GestureType> gestures; QList<Qt::GestureType> gestures;
gestures << Qt::SwipeGesture; gestures << Qt::SwipeGesture;

View File

@@ -72,7 +72,6 @@ void ScreenSaverWindow::initializeMultimediaList()
void ScreenSaverWindow::mousePressEvent(QMouseEvent* aEvent) void ScreenSaverWindow::mousePressEvent(QMouseEvent* aEvent)
{ {
stop(); stop();
EventCenter::Default()->triggerEvent(GUIEvents::RequestLogin, nullptr, nullptr);
QWidget::mousePressEvent(aEvent); QWidget::mousePressEvent(aEvent);
} }
@@ -111,16 +110,8 @@ void ScreenSaverWindow::playMultimedia()
mCurrentPlayIndex++; mCurrentPlayIndex++;
} }
void ScreenSaverWindow::stop(bool aIsStopLocker) void ScreenSaverWindow::stop()
{ {
if (aIsStopLocker)
{
Locker::getInstance()->setIsEnable(false);
}
else
{
Locker::getInstance()->start();
}
if (!mIsPlaying) if (!mIsPlaying)
{ {
return; return;
@@ -141,8 +132,3 @@ void ScreenSaverWindow::handleVideoStatusChanged(QMediaPlayer::MediaStatus aStat
playMultimedia(); playMultimedia();
} }
} }
void ScreenSaverWindow::startLocker()
{
Locker::getInstance()->setIsEnable(true);
}

View File

@@ -30,8 +30,7 @@ class ScreenSaverWindow : public QWidget
public: public:
explicit ScreenSaverWindow(QWidget *aParent = nullptr); explicit ScreenSaverWindow(QWidget *aParent = nullptr);
void play(); void play();
void stop(bool aIsStopLocker = false); void stop();
void startLocker();
protected: protected:
void mousePressEvent(QMouseEvent* aEvent); void mousePressEvent(QMouseEvent* aEvent);

View File

@@ -1,4 +1,5 @@
#include "GetLockScreenTimeHelper.h" #include "GetLockScreenTimeHelper.h"
#include "Locker.h"
#include "json/jsonobject.h" #include "json/jsonobject.h"
@@ -28,6 +29,7 @@ QString GetLockScreenTimeHelper::getLockScreenTimeStr()
void GetLockScreenTimeHelper::setLockScreenTime(const QString& aTime) void GetLockScreenTimeHelper::setLockScreenTime(const QString& aTime)
{ {
int time = aTime.section(" ", 0, 0).toInt(); int time = aTime.section(" ", 0, 0).toInt();
Locker::getInstance()->setTimer(time * 1000 * 60);
JsonObject::Instance()->setLockScreenTime(time); JsonObject::Instance()->setLockScreenTime(time);
} }

View File

@@ -15,14 +15,11 @@ Locker* Locker::getInstance()
Locker::Locker() Locker::Locker()
: QObject() : QObject()
, mScreenTimer(new QTimer(this)) , mScreenTimer(new QTimer(this))
, mCounter(GetLockScreenTimeHelper::getLockScreenTime() * 1000) , mCounter(GetLockScreenTimeHelper::getLockScreenTime() * 1000 * 60)
, mIsEnable(false) , mIsEnable(false)
{ {
if(mCounter > 0)
{
setIsEnable(true);
}
mScreenTimer->setSingleShot(true); mScreenTimer->setSingleShot(true);
connect(EventCenter::Default(), &EventCenter::LoginSuccess, this, &Locker::start);
connect(mScreenTimer, SIGNAL(timeout()), this, SLOT(coverScreen())); connect(mScreenTimer, SIGNAL(timeout()), this, SLOT(coverScreen()));
} }
@@ -32,26 +29,14 @@ Locker::~Locker()
void Locker::start() void Locker::start()
{ {
if (mIsEnable && mCounter > 0) if (mCounter > 0)
{ {
mIsEnable = true;
mScreenTimer->stop(); mScreenTimer->stop();
mScreenTimer->start(mCounter); mScreenTimer->start(mCounter);
} }
} }
void Locker::setIsEnable(bool aIsEnable)
{
mIsEnable = aIsEnable;
if (!mIsEnable)
{
stop();
}
else
{
start();
}
}
void Locker::coverScreen() void Locker::coverScreen()
{ {
if (AppGlobalValues::InProcessing().toBool()) if (AppGlobalValues::InProcessing().toBool())
@@ -60,13 +45,22 @@ void Locker::coverScreen()
} }
else else
{ {
mScreenTimer->stop(); stop();
EventCenter::Default()->triggerEvent(GUIEvents::RequestScreenSaver, nullptr, nullptr); EventCenter::Default()->triggerEvent(GUIEvents::RequestLogin, nullptr, nullptr);
if(JsonObject::Instance()->getScreenSaverMode())
{
EventCenter::Default()->triggerEvent(GUIEvents::RequestScreenSaver, nullptr, nullptr);
}
} }
} }
void Locker::setTimer(int aInterval) void Locker::setTimer(int aInterval)
{ {
mCounter = aInterval; mCounter = aInterval;
mScreenTimer->stop();
if (mCounter > 0)
{
mScreenTimer->start(mCounter);
}
} }
void Locker::refreshTimer() void Locker::refreshTimer()
{ {
@@ -79,5 +73,6 @@ void Locker::refreshTimer()
void Locker::stop() void Locker::stop()
{ {
mIsEnable = false;
mScreenTimer->stop(); mScreenTimer->stop();
} }

View File

@@ -9,12 +9,11 @@ class Locker : public QObject
Q_OBJECT Q_OBJECT
public: public:
static Locker* getInstance(); static Locker* getInstance();
void start();
void stop(); void stop();
void setTimer(int aInterval); void setTimer(int aInterval);
void setIsEnable(bool aIsEnable);
public slots: public slots:
void start();
void refreshTimer(); void refreshTimer();
void coverScreen(); void coverScreen();
private: private: