Refactory lock screen and screen saver.
This commit is contained in:
@@ -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 清除!
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user