ktimeout.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "ktimeout.h"
00024
00025 KTimeout::KTimeout(int size)
00026 : QObject(), _timers(size) {
00027 _timers.setAutoDelete(true);
00028 }
00029
00030
00031 KTimeout::~KTimeout() {
00032 clear();
00033 }
00034
00035
00036 void KTimeout::clear() {
00037 _timers.clear();
00038 }
00039
00040
00041 void KTimeout::removeTimer(int id) {
00042 QTimer *t = _timers.find(id);
00043 if (t != 0L) {
00044 _timers.remove(id);
00045 }
00046 }
00047
00048
00049 void KTimeout::addTimer(int id, int timeout) {
00050 if (_timers.find(id) != 0L) {
00051 return;
00052 }
00053
00054 QTimer *t = new QTimer;
00055 connect(t, SIGNAL(timeout()), this, SLOT(timeout()));
00056 t->start(timeout);
00057 _timers.insert(id, t);
00058 }
00059
00060
00061 void KTimeout::resetTimer(int id, int timeout) {
00062 QTimer *t = _timers.find(id);
00063 if (t) {
00064 t->changeInterval(timeout);
00065 }
00066 }
00067
00068
00069 void KTimeout::timeout() {
00070 const QTimer *t = static_cast<const QTimer*>(sender());
00071 if (t) {
00072 QIntDictIterator<QTimer> it(_timers);
00073 for (; it.current(); ++it) {
00074 if (it.current() == t) {
00075 emit timedOut(it.currentKey());
00076 return;
00077 }
00078 }
00079 }
00080 }
00081
00082
00083 #include "ktimeout.moc"
00084
This file is part of the documentation for kio Library Version 3.2.3.