]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/qtTimeout.cpp
* src/frontends/qt4/ui/TextLayoutUi.ui:
[lyx.git] / src / frontends / qt4 / qtTimeout.cpp
1 /**
2  * \file qtTimeout.cpp
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author John Levon
7  *
8  * Full author contact details are available in file CREDITS.
9  */
10
11 #include <config.h>
12
13 #include "qtTimeout.h"
14
15 #include <QTimerEvent>
16
17 #include "debug.h"
18
19
20 namespace lyx {
21
22
23 Timeout::Timeout(unsigned int msec, Type t)
24         : pimpl_(new qtTimeout(*this)), type(t), timeout_ms(msec)
25 {}
26
27
28 qtTimeout::qtTimeout(Timeout & owner)
29         : Timeout::Impl(owner), timeout_id(-1)
30 {}
31
32
33 void qtTimeout::timerEvent(QTimerEvent *)
34 {
35         emit();
36 }
37
38
39 void qtTimeout::reset()
40 {
41         if (timeout_id != -1)
42                 killTimer(timeout_id);
43         timeout_id = -1;
44 }
45
46
47 bool qtTimeout::running() const
48 {
49         return timeout_id != -1;
50 }
51
52
53 void qtTimeout::start()
54 {
55         if (running())
56                 lyxerr << "Timeout::start: already running!" << std::endl;
57         timeout_id = startTimer(timeout_ms());
58 }
59
60
61 void qtTimeout::stop()
62 {
63         if (running())
64                 reset();
65 }
66
67
68 } // namespace lyx