From 74aee53beb00f13fdcfcdaa0657aff259d7c962b Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 26 Nov 2009 10:54:45 +1000 Subject: Ensure running is set to false when the timer stops. --- src/declarative/util/qmltimer.cpp | 2 ++ tests/auto/declarative/qmltimer/tst_qmltimer.cpp | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/src/declarative/util/qmltimer.cpp b/src/declarative/util/qmltimer.cpp index da60193..9b54337 100644 --- a/src/declarative/util/qmltimer.cpp +++ b/src/declarative/util/qmltimer.cpp @@ -303,7 +303,9 @@ void QmlTimer::finished() if (d->repeating || !d->running) return; emit triggered(); + d->running = false; d->firstTick = false; + emit runningChanged(); } QT_END_NAMESPACE diff --git a/tests/auto/declarative/qmltimer/tst_qmltimer.cpp b/tests/auto/declarative/qmltimer/tst_qmltimer.cpp index 63a9a09..d681fbb 100644 --- a/tests/auto/declarative/qmltimer/tst_qmltimer.cpp +++ b/tests/auto/declarative/qmltimer/tst_qmltimer.cpp @@ -105,6 +105,7 @@ void tst_qmltimer::notRepeating() QCOMPARE(helper.count, 1); QTest::qWait(TIMEOUT_TIMEOUT); QCOMPARE(helper.count, 1); + QVERIFY(timer->isRunning() == false); } void tst_qmltimer::notRepeatingStart() @@ -126,6 +127,7 @@ void tst_qmltimer::notRepeatingStart() QCOMPARE(helper.count, 1); QTest::qWait(TIMEOUT_TIMEOUT); QCOMPARE(helper.count, 1); + QVERIFY(timer->isRunning() == false); delete timer; } @@ -147,11 +149,14 @@ void tst_qmltimer::repeat() QTest::qWait(TIMEOUT_TIMEOUT); QVERIFY(helper.count > oldCount); + QVERIFY(timer->isRunning()); oldCount = helper.count; timer->stop(); + QTest::qWait(TIMEOUT_TIMEOUT); QVERIFY(helper.count == oldCount); + QVERIFY(timer->isRunning() == false); delete timer; } @@ -173,6 +178,7 @@ void tst_qmltimer::triggeredOnStart() QCOMPARE(helper.count, 2); QTest::qWait(TIMEOUT_TIMEOUT); QCOMPARE(helper.count, 2); + QVERIFY(timer->isRunning() == false); delete timer; } @@ -194,6 +200,7 @@ void tst_qmltimer::triggeredOnStartRepeat() int oldCount = helper.count; QTest::qWait(TIMEOUT_TIMEOUT); QVERIFY(helper.count > oldCount); + QVERIFY(timer->isRunning()); delete timer; } @@ -234,6 +241,7 @@ void tst_qmltimer::changeDuration() QTest::qWait(600); QCOMPARE(helper.count, 3); + QVERIFY(timer->isRunning()); delete timer; } @@ -259,6 +267,7 @@ void tst_qmltimer::restart() QTest::qWait(700); QCOMPARE(helper.count, 2); + QVERIFY(timer->isRunning()); delete timer; } -- cgit v0.12