KWin
Loading...
Searching...
No Matches
poller.cpp
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2015 Martin Gräßlin <mgraesslin@kde.org>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9#include "poller.h"
10#include "idledetector.h"
11#include "input.h"
12
13namespace KWin
14{
15
17 : KAbstractIdleTimePoller(parent)
18{
19}
20
22{
23 return true;
24}
25
27{
28 return true;
29}
30
34
35void KWinIdleTimePoller::addTimeout(int nextTimeout)
36{
37 if (m_timeouts.contains(nextTimeout)) {
38 return;
39 }
40
41 auto detector = new IdleDetector(std::chrono::milliseconds(nextTimeout), this);
42 m_timeouts.insert(nextTimeout, detector);
43 connect(detector, &IdleDetector::idle, this, [this, nextTimeout] {
44 Q_EMIT timeoutReached(nextTimeout);
45 });
46 connect(detector, &IdleDetector::resumed, this, &KWinIdleTimePoller::resumingFromIdle);
47}
48
50{
51 delete m_timeouts.take(nextTimeout);
52}
53
54QList< int > KWinIdleTimePoller::timeouts() const
55{
56 return m_timeouts.keys();
57}
58
60{
61 if (m_catchResumeTimeout) {
62 // already setup
63 return;
64 }
65 m_catchResumeTimeout = new IdleDetector(std::chrono::milliseconds::zero(), this);
66 connect(m_catchResumeTimeout, &IdleDetector::resumed, this, [this]() {
67 m_catchResumeTimeout->deleteLater();
68 m_catchResumeTimeout = nullptr;
69 Q_EMIT resumingFromIdle();
70 });
71}
72
74{
75 delete m_catchResumeTimeout;
76 m_catchResumeTimeout = nullptr;
77}
78
80{
81 return 0;
82}
83
88
89} // namespace KWin
90
91#include "moc_poller.cpp"
bool setUpPoller() override
Definition poller.cpp:26
int forcePollRequest() override
Definition poller.cpp:79
void catchIdleEvent() override
Definition poller.cpp:59
KWinIdleTimePoller(QObject *parent=nullptr)
Definition poller.cpp:16
void unloadPoller() override
Definition poller.cpp:31
QList< int > timeouts() const override
Definition poller.cpp:54
void simulateUserActivity() override
Definition poller.cpp:84
void removeTimeout(int nextTimeout) override
Definition poller.cpp:49
void addTimeout(int nextTimeout) override
Definition poller.cpp:35
void stopCatchingIdleEvents() override
Definition poller.cpp:73
bool isAvailable() override
Definition poller.cpp:21
InputRedirection * input()
Definition input.h:549