Files
GUI/src/utilities/Locker.cpp
2024-05-06 15:50:47 +08:00

84 lines
1.4 KiB
C++

#include "Locker.h"
#include <QTimer>
#include "appvals/AppGlobalValues.h"
#include "event/EventCenter.h"
#include "json/jsonobject.h"
#include "utilities/GetLockScreenTimeHelper.h"
Locker* Locker::getInstance()
{
static Locker instance;
return &instance;
}
Locker::Locker()
: QObject()
, mScreenTimer(new QTimer(this))
, mCounter(GetLockScreenTimeHelper::getLockScreenTime() * 1000)
, mIsEnable(false)
{
if(mCounter > 0)
{
setIsEnable(true);
}
mScreenTimer->setSingleShot(true);
connect(mScreenTimer, SIGNAL(timeout()), this, SLOT(coverScreen()));
}
Locker::~Locker()
{
}
void Locker::start()
{
if (mIsEnable && mCounter > 0)
{
mScreenTimer->stop();
mScreenTimer->start(mCounter);
}
}
void Locker::setIsEnable(bool aIsEnable)
{
mIsEnable = aIsEnable;
if (!mIsEnable)
{
stop();
}
else
{
start();
}
}
void Locker::coverScreen()
{
if (AppGlobalValues::InProcessing().toBool())
{
refreshTimer();
}
else
{
mScreenTimer->stop();
EventCenter::Default()->triggerEvent(GUIEvents::RequestScreenSaver, nullptr, nullptr);
}
}
void Locker::setTimer(int aInterval)
{
mCounter = aInterval;
}
void Locker::refreshTimer()
{
if (mIsEnable && mCounter > 0)
{
mScreenTimer->stop();
mScreenTimer->start(mCounter);
}
}
void Locker::stop()
{
mScreenTimer->stop();
}