23
23
#include "ktimeout.h"
24
#include <QTimerEvent>
25
KTimeout::KTimeout(int size)
27
_timers.reserve(size);
31
30
KTimeout::~KTimeout() {
36
33
void KTimeout::clear() {
42
37
void KTimeout::removeTimer(int id) {
43
QTimer *t = _timers.value(id);
51
41
void KTimeout::addTimer(int id, int timeout) {
52
if (_timers.contains(id)) {
56
QTimer *t = new QTimer;
57
connect(t, SIGNAL(timeout()), this, SLOT(timeout()));
59
_timers.insert(id, t);
42
if (_timers.contains(id)) {
45
_timers.insert(id, startTimer(timeout));
63
48
void KTimeout::resetTimer(int id, int timeout) {
64
QTimer *t = _timers.value(id);
71
void KTimeout::timeout() {
72
const QTimer *t = static_cast<const QTimer*>(sender());
74
QMultiHash<int, QTimer*>::const_iterator it = _timers.constBegin();
75
while (it != _timers.constEnd()) {
76
if (it.value() == t) {
77
emit timedOut(it.key());
49
int timerId = _timers.value(id, 0);
52
_timers.insert(id, startTimer(timeout));
56
void KTimeout::timerEvent(QTimerEvent* ev) {
57
QHash<int, int>::const_iterator it = _timers.constBegin();
58
for ( ; it != _timers.constEnd(); ++it) {
59
if (it.value() == ev->timerId()) {
60
emit timedOut(it.key());
86
66
#include "ktimeout.moc"