/usr/include/KF5/KIdleTime/kidletime.h is in libkf5idletime-dev 5.18.0-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | /* This file is part of the KDE libraries
Copyright (C) 2009 Dario Freddi <drf at kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KIDLETIME_H
#define KIDLETIME_H
#include <QtCore/QObject>
#include <QtCore/QHash>
#include <kidletime_export.h>
class KIdleTimePrivate;
/**
* KIdleTime is a singleton reporting information on idle time. It is useful not
* only for finding out about the current idle time of the PC, but also for getting
* notified upon idle time events, such as custom timeouts, or user activity.
*
* @note All the intervals and times in this library are in milliseconds, unless
* specified otherwise
*
* @author Dario Freddi
*
* @since 4.4
*/
class KIDLETIME_EXPORT KIdleTime : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE(KIdleTime)
Q_DISABLE_COPY(KIdleTime)
public:
/**
* Returns the singleton instance. Use this method to access KIdleTime
*
* @returns the instance of KIdleTime
*/
static KIdleTime *instance();
/**
* The destructor
*/
virtual ~KIdleTime();
/**
* Retrieves the idle time of the system, in milliseconds
*
* @returns the idle time of the system
*/
int idleTime() const;
/**
* Returns the list of timeout identifiers associated with their duration, in milliseconds,
* the library is currently listening to.
*
* @see addIdleTimeout
* @see removeIdleTimeout
* @see timeoutReached
*/
QHash<int, int> idleTimeouts() const;
/**
* Attempts to simulate user activity. This implies that after calling this
* method, the idle time of the system will become 0 and eventually \link resumingFromIdle
* will be triggered
*
* @see resumingFromIdle
*/
void simulateUserActivity();
public Q_SLOTS:
/**
* Adds a new timeout to catch. When calling this method, after the system will be idle for
* \c msec milliseconds, the signal \c timeoutReached will be triggered. Please note that until you will
* call \c removeIdleTimeout or \c removeAllIdleTimeouts, the signal will be triggered every
* time the system will be idle for \c msec milliseconds. This function also returns an unique
* token for the timeout just added to allow easier identification.
*
* @param msec the time, in milliseconds, after which the signal will be triggered
*
* @returns an unique identifier for the timeout being added, that will be streamed by timeoutReached
*
* @see removeIdleTimeout
* @see removeAllIdleTimeouts
* @see timeoutReached
*
*/
int addIdleTimeout(int msec);
/**
* Stops catching the idle timeout identified by the token \c identifier,
* if it was registered earlier with addIdleTimeout.
* Otherwise does nothing.
*
* @param identifier the token returned from addIdleTimeout of the timeout you want to stop listening to
*/
void removeIdleTimeout(int identifier);
/**
* Stops catching every set timeout (if any). This means that after calling this method, the signal
* \link timeoutReached won't be called again until you will add another timeout
*
* @see timeoutReached
* @see addIdleTimeout
*/
void removeAllIdleTimeouts();
/**
* Catches the next resume from idle event. This means that whenever user activity will be registered, or
* \link simulateUserActivity is called, the signal \link resumingFromIdle will be triggered.
* <p>
* Please note that this method will trigger the signal just for the very first resume event after the call:
* this means you explicitly have to request to track every single resume event you are interested in.
*
* @note This behavior is due to the fact that a resume event happens whenever the user sends an input to the
* system. This would lead to a massive amount of signals being delivered when the PC is being used.
* Moreover, you are usually interested in catching just significant resume events, such as the ones after
* a significant period of inactivity. For tracking user input, you can use the more efficient methods provided
* by Qt. The purpose of this library is just monitoring the activity of the user.
*
* @see resumingFromIdle
* @see simulateUserActivity
*
*/
void catchNextResumeEvent();
/**
* Stops listening for resume event. This function serves for canceling \c catchNextResumeEvent, as it
* will have effect just when \c catchNextResumeEvent has been called and \c resumingFromIdle not
* yet triggered
*
* @see resumingFromIdle
* @see catchNextResumeEvent
*
*/
void stopCatchingResumeEvent();
Q_SIGNALS:
/**
* Triggered, if KIdleTime is catching resume events, when the system resumes from an idle state. This means
* that either \link simulateUserActivity was called or the user sent an input to the system.
*
* @see catchNextResumeEvent
*/
void resumingFromIdle();
/**
* Triggered when the system has been idle for x milliseconds, identified by the previously set
* timeout.
* <p>
* This signal is triggered whenever each timeout previously registered with \link addIdleTimeout
* is reached.
*
* @param identifier the identifier of the timeout the system has reached
*
* @see addIdleTimeout
* @see removeIdleTimeout
*/
void timeoutReached(int identifier);
/**
* Overload. Streams the duration as well. It is guaranteed that \c msec will exactly
* correspond to the timeout registered with \link addIdleTimeout
*
* @param msec the time, in milliseconds, the system has been idle for
*
* @see addIdleTimeout
* @see removeIdleTimeout
*/
void timeoutReached(int identifier, int msec);
private:
KIdleTime();
KIdleTimePrivate *const d_ptr;
Q_PRIVATE_SLOT(d_func(), void _k_resumingFromIdle())
Q_PRIVATE_SLOT(d_func(), void _k_timeoutReached(int))
};
#endif /* KIDLETIME_H */
|