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);
118void FakeTimerFactory::updateTime(qint64 targetTime)
120 qint64 minTimeoutTime = targetTime;
122 for (int i = 0; i < timers.count(); ++i) {
123 FakeTimer *timer = timers[i].data();
124 if (timer && timer->isRunning() && timer->nextTimeoutTime() < minTimeoutTime) {
125 minTimeoutTime = timer->nextTimeoutTime();
129 m_timeSource->m_msecsSinceReference = minTimeoutTime;
131 for (int i = 0; i < timers.count(); ++i) {
132 FakeTimer *timer = timers[i].data();
138 if (m_timeSource->msecsSinceReference() < targetTime) {
139 updateTime(targetTime);
143AbstractTimer *FakeTimerFactory::createTimer(QObject *parent)
145 FakeTimer *fakeTimer = new FakeTimer(m_timeSource, parent);
147 timers.append(fakeTimer);
152} // 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