2 * Copyright (C) 2014-2015 Canonical, Ltd.
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.
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.
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/>.
19namespace UbuntuGestures {
21Timer::Timer(QObject *parent) : AbstractTimer(parent)
23 m_timer.setSingleShot(false);
24 connect(&m_timer, &QTimer::timeout, this, &AbstractTimer::timeout);
27int Timer::interval() const
29 return m_timer.interval();
32void Timer::setInterval(int msecs)
34 m_timer.setInterval(msecs);
40 AbstractTimer::start();
46 AbstractTimer::stop();
49bool Timer::isSingleShot() const
51 return m_timer.isSingleShot();
54void Timer::setSingleShot(bool value)
56 m_timer.setSingleShot(value);
59/////////////////////////////////// FakeTimer //////////////////////////////////
61FakeTimer::FakeTimer(const SharedTimeSource &timeSource, QObject *parent)
62 : UbuntuGestures::AbstractTimer(parent)
65 , m_timeSource(timeSource)
69void FakeTimer::update()
75 if (m_nextTimeoutTime <= m_timeSource->msecsSinceReference()) {
79 m_nextTimeoutTime += interval();
85void FakeTimer::start()
87 AbstractTimer::start();
88 m_nextTimeoutTime = m_timeSource->msecsSinceReference() + (qint64)interval();
91int FakeTimer::interval() const
96void FakeTimer::setInterval(int msecs)
101bool FakeTimer::isSingleShot() const
106void FakeTimer::setSingleShot(bool value)
108 m_singleShot = value;
111/////////////////////////////////// FakeTimerFactory //////////////////////////////////
113FakeTimerFactory::FakeTimerFactory()
115 m_timeSource.reset(new FakeTimeSource);
118FakeTimerFactory::~FakeTimerFactory()
120 for (int i = 0; i < timers.count(); ++i) {
121 FakeTimer *timer = timers[i].data();
128void FakeTimerFactory::updateTime(qint64 targetTime)
130 qint64 minTimeoutTime = targetTime;
132 for (int i = 0; i < timers.count(); ++i) {
133 FakeTimer *timer = timers[i].data();
134 if (timer && timer->isRunning() && timer->nextTimeoutTime() < minTimeoutTime) {
135 minTimeoutTime = timer->nextTimeoutTime();
139 m_timeSource->m_msecsSinceReference = minTimeoutTime;
141 for (int i = 0; i < timers.count(); ++i) {
142 FakeTimer *timer = timers[i].data();
148 if (m_timeSource->msecsSinceReference() < targetTime) {
149 updateTime(targetTime);
153AbstractTimer *FakeTimerFactory::createTimer(QObject *parent)
155 FakeTimer *fakeTimer = new FakeTimer(m_timeSource, parent);
157 timers.append(fakeTimer);
162} // namespace UbuntuGestures
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list