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();
}
void DialogManager::requestScreenSaverStop(bool aIsStopLocker)
{
mScreenSaverWindow->stop(aIsStopLocker);
}
DialogResult DialogManager::requestResetAdminPwd()
{
AdminSPwdDialog dialog(mTopWidget);
@@ -487,15 +482,10 @@ 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();
if (nullptr != mTopWidget && !mTopWidget->inherits("GUIMessageDialog"))
{
mScreenSaverWindow->startLocker();
}
}
// 扫描过程 dialog 只能为最底层并且会被error dialog 清除!

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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