3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * Full author contact details are available in file CREDITS.
14 #include <QTimerEvent>
23 * This class executes the callback when the timeout expires
26 class qtTimeout : QObject, public Timeout::Impl {
29 qtTimeout(Timeout & owner_);
31 virtual bool running() const;
41 virtual void timerEvent(QTimerEvent *);
49 Timeout::Timeout(unsigned int msec, Type t)
50 : pimpl_(new qtTimeout(*this)), type(t), timeout_ms(msec)
54 qtTimeout::qtTimeout(Timeout & owner)
55 : Timeout::Impl(owner), timeout_id(-1)
59 void qtTimeout::timerEvent(QTimerEvent *)
65 void qtTimeout::reset()
68 killTimer(timeout_id);
73 bool qtTimeout::running() const
75 return timeout_id != -1;
79 void qtTimeout::start()
82 lyxerr << "Timeout::start: already running!" << std::endl;
83 timeout_id = startTimer(timeout_ms());
87 void qtTimeout::stop()
104 bool Timeout::running() const
106 return pimpl_->running();
110 void Timeout::start()
122 void Timeout::restart()
133 if (type == CONTINUOUS)
138 Timeout & Timeout::setType(Type t)
145 Timeout & Timeout::setTimeout(unsigned int msec)
147 // Can't have a timeout of zero!