1 #include "idletimedetector.h"
3 #include <tqdatetime.h>
4 #include <tqmessagebox.h>
13 kdDebug(5970) <<
"Entering IdleTimeDetector::IdleTimeDetector" << endl;
17 kdDebug(5970) <<
"IdleTimeDetector: LIBXSS detected @ compile time" << endl;
18 int event_base, error_base;
19 if(XScreenSaverQueryExtension(tqt_xdisplay(), &event_base, &error_base))
21 _idleDetectionPossible =
true;
22 _mit_info = XScreenSaverAllocInfo ();
26 _idleDetectionPossible =
false;
29 _timer =
new TQTimer(
this);
30 connect(_timer, TQ_SIGNAL(timeout()),
this, TQ_SLOT(check()));
32 _idleDetectionPossible =
false;
39 return _idleDetectionPossible;
42 void IdleTimeDetector::check()
44 kdDebug(5970) <<
"Entering IdleTimeDetector::check" << endl;
46 if (_idleDetectionPossible)
48 XScreenSaverQueryInfo(tqt_xdisplay(), tqt_xrootwin(), _mit_info);
49 int idleSeconds = (_mit_info->idle/1000);
50 if (idleSeconds >= _maxIdle)
51 informOverrun(idleSeconds);
62 void IdleTimeDetector::informOverrun(
int idleSeconds)
64 kdDebug(5970) <<
"Entering IdleTimeDetector::informOverrun" << endl;
65 if (!_overAllIdleDetect)
70 TQDateTime idleStart = TQDateTime::currentDateTime().addSecs(-idleSeconds);
71 TQString idleStartTQString = TDEGlobal::locale()->formatTime(idleStart.time());
73 int id = TQMessageBox::warning( 0, i18n(
"Idle Detection"),
74 i18n(
"Desktop has been idle since %1."
75 " What should we do?").arg(idleStartTQString),
76 i18n(
"Revert && Stop"),
77 i18n(
"Revert && Continue"),
78 i18n(
"Continue Timing"),0,2);
79 TQDateTime end = TQDateTime::currentDateTime();
80 int diff = idleStart.secsTo(end)/secsPerMinute;
85 kdDebug(5970) <<
"Now it is " << TQDateTime::currentDateTime() << endl;
86 kdDebug(5970) <<
"Reverting timer to " << TDEGlobal::locale()->formatTime(idleStart.time()).ascii() << endl;
94 _timer->start(testInterval);
99 _timer->start(testInterval);
106 kdDebug(5970) <<
"Entering IdleTimeDetector::startIdleDetection" << endl;
108 kdDebug(5970) <<
"Starting Timer" << endl;
109 if (!_timer->isActive())
110 _timer->start(testInterval);
117 if (_timer->isActive())
123 _overAllIdleDetect = on;
126 #include "idletimedetector.moc"
void extractTime(int minutes)
Tells the listener to extract time from current timing.
void startIdleDetection()
Starts detecting idle time.
IdleTimeDetector(int maxIdle)
Initializes and idle test timer.
void toggleOverAllIdleDetection(bool on)
Sets whether idle detection should be done at all.
void stopIdleDetection()
Stops detecting idle time.
void setMaxIdle(int maxIdle)
Sets the maximum allowed idle.
bool isIdleDetectionPossible()
Returns true if it is possible to do idle detection.
void stopAllTimersAt(TQDateTime qdt)
Tells the listener to stop timing for TQDateTime.