Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 17 additions & 10 deletions src/plugin-qt/power/session/powersaveplan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,24 @@ void PowerSavePlan::Update(int screenSaverStartDelay, int lockDelay,
}
}

setScreenSaverTimeout(min);


bool isIdle = false;
if (m_powerManager) {
auto *iw = m_powerManager->idleWatcher();
isIdle = iw && iw->isIdle();
}

for (auto &t : m_metaTasks) {
int nSecs = t.delay - min;
t.realDelay = nSecs > 0 ? nSecs * 1000 : 1;
if (isIdle) { // 已经处于 idleon 状态的update(可能是插拔电源或者用户重新设置延迟), 重排任务
t.realDelay = t.delay > 0 ? t.delay * 1000 : 1;
} else { // 到达 idleOn 后立即执行动作
int nSecs = t.delay - min;
t.realDelay = nSecs > 0 ? nSecs * 1000 : 1;
}
}

if (m_isIdle) {

setScreenSaverTimeout(min);
if (isIdle) {
HandleIdleOn();
}
}
Expand All @@ -149,8 +159,6 @@ void PowerSavePlan::HandleIdleOn()
return;
}

m_isIdle = true;

for (const auto &t : m_metaTasks) {
scheduleTask(t);
}
Expand All @@ -162,7 +170,6 @@ void PowerSavePlan::HandleIdleOn()
void PowerSavePlan::HandleIdleOff()
{
qDebug(logPowerSession) << "HandleIdleOff";
m_isIdle = false;
interruptTasks();
if (!m_powerManager) return;
m_powerManager->SetPrepareSuspend(static_cast<int>(PS_Normal));
Expand All @@ -174,7 +181,7 @@ void PowerSavePlan::HandleIdleOff()

void PowerSavePlan::scheduleTask(const MetaTask &t)
{
qDebug(logPowerSession) << "Scheduling task" << t.name << "to run in" << t.realDelay << "ms";
qWarning(logPowerSession) << "Scheduling task" << t.name << "to run in" << t.realDelay << "ms";
auto *timer = new QTimer(this);
timer->setSingleShot(true);
connect(timer, &QTimer::timeout, this, t.fn);
Expand Down
1 change: 0 additions & 1 deletion src/plugin-qt/power/session/powersaveplan.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ class PowerSavePlan : public QObject {
QVector<QTimer *> m_timers;
QMap<QString, double> m_oldBrightness;
bool m_screensaverRunning = false;
bool m_isIdle = false;
bool m_allowScreenSaver = true;
bool m_psmEnabled = false;
uint m_psmDrop = 0;
Expand Down
Loading