~paulliu/unity8/noninteractive20140804

« back to all changes in this revision

Viewing changes to libs/UbuntuGestures/Timer.cpp

  • Committer: Ying-Chun Liu
  • Date: 2014-10-14 14:37:20 UTC
  • mfrom: (1109.60.129 unity8)
  • Revision ID: paul.liu@canonical.com-20141014143720-xnqhcgv8xq9aj8lz
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2014 Canonical, Ltd.
 
3
 *
 
4
 * This program is free software; you can redistribute it and/or modify
 
5
 * it under the terms of the GNU General Public License as published by
 
6
 * the Free Software Foundation; version 3.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful,
 
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 * GNU General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License
 
14
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
15
 */
 
16
 
 
17
#include "Timer.h"
 
18
 
 
19
namespace UbuntuGestures {
 
20
 
 
21
Timer::Timer(QObject *parent) : AbstractTimer(parent)
 
22
{
 
23
    m_timer.setSingleShot(false);
 
24
    connect(&m_timer, &QTimer::timeout, this, &AbstractTimer::timeout);
 
25
}
 
26
 
 
27
int Timer::interval() const
 
28
{
 
29
    return m_timer.interval();
 
30
}
 
31
 
 
32
void Timer::setInterval(int msecs)
 
33
{
 
34
    m_timer.setInterval(msecs);
 
35
}
 
36
 
 
37
void Timer::start()
 
38
{
 
39
    m_timer.start();
 
40
    AbstractTimer::start();
 
41
}
 
42
 
 
43
void Timer::stop()
 
44
{
 
45
    m_timer.stop();
 
46
    AbstractTimer::stop();
 
47
}
 
48
 
 
49
bool Timer::isSingleShot() const
 
50
{
 
51
    return m_timer.isSingleShot();
 
52
}
 
53
 
 
54
void Timer::setSingleShot(bool value)
 
55
{
 
56
    m_timer.setSingleShot(value);
 
57
}
 
58
 
 
59
/////////////////////////////////// FakeTimer //////////////////////////////////
 
60
 
 
61
FakeTimer::FakeTimer(QObject *parent)
 
62
    : UbuntuGestures::AbstractTimer(parent)
 
63
    , m_interval(0)
 
64
    , m_singleShot(false)
 
65
{
 
66
}
 
67
 
 
68
int FakeTimer::interval() const
 
69
{
 
70
    return m_interval;
 
71
}
 
72
 
 
73
void FakeTimer::setInterval(int msecs)
 
74
{
 
75
    m_interval = msecs;
 
76
}
 
77
 
 
78
bool FakeTimer::isSingleShot() const
 
79
{
 
80
    return m_singleShot;
 
81
}
 
82
 
 
83
void FakeTimer::setSingleShot(bool value)
 
84
{
 
85
    m_singleShot = value;
 
86
}
 
87
 
 
88
/////////////////////////////////// FakeTimerFactory //////////////////////////////////
 
89
 
 
90
AbstractTimer *FakeTimerFactory::createTimer(QObject *parent)
 
91
{
 
92
    FakeTimer *fakeTimer = new FakeTimer(parent);
 
93
 
 
94
    timers.append(fakeTimer);
 
95
 
 
96
    return fakeTimer;
 
97
}
 
98
 
 
99
void FakeTimerFactory::makeRunningTimersTimeout()
 
100
{
 
101
    for (int i = 0; i < timers.count(); ++i) {
 
102
        FakeTimer *timer = timers[i].data();
 
103
        if (timer && timer->isRunning()) {
 
104
            timer->emitTimeout();
 
105
        }
 
106
    }
 
107
}
 
108
 
 
109
} // namespace UbuntuGestures