[Qt-qml] QML Timer triggered
Bo Thorsen
bo at fioniasoftware.dk
Fri Oct 21 10:03:59 CEST 2011
Den 21-10-2011 09:45, jan-arve.saether at nokia.com skrev:
> Why would you ask for the running property from within onTriggered anyway?
{
onTriggered(): doSomething()
onSomethingElse(): doSomething()
}
In doSomething(), the check happens.
This is just one example, I can come up with more if you want to.
But this actually reminds me of the old "un-ask the question". It's the
wrong question, since calls like isRunning just always have to work.
Bo.
> *From:*qt-qml-bounces+jan-arve.saether=nokia.com at qt.nokia.com
> [mailto:qt-qml-bounces+jan-arve.saether=nokia.com at qt.nokia.com] *On
> Behalf Of *Kennedy Aaron (Nokia-MP-Qt/Brisbane)
> *Sent:* 21. oktober 2011 02:10
> *To:* Brasser Michael (Nokia-MP-Qt/Brisbane); Jokela Pekka.E
> (Nokia-MP-Qt/Tampere)
> *Cc:* qt-qml at qt.nokia.com
> *Subject:* Re: [Qt-qml] QML Timer triggered
>
> Hi,
>
> That you cannot restart the timer from within the onTriggered handler is
> definitely wrong.
>
> A slightly more tricky question is, what should the running property
> report from within the onTriggered handler in such a case?
>
> Cheers,
>
>
> Aaron
>
> ------------------------------------------------------------------------
>
> *From:*qt-qml-bounces+aaron.kennedy=nokia.com at qt.nokia.com
> [qt-qml-bounces+aaron.kennedy=nokia.com at qt.nokia.com] on behalf of
> Brasser Michael (Nokia-MP-Qt/Brisbane)
> *Sent:* Friday, October 21, 2011 9:46 AM
> *To:* Jokela Pekka.E (Nokia-MP-Qt/Tampere)
> *Cc:* qt-qml at qt.nokia.com
> *Subject:* Re: [Qt-qml] QML Timer triggered
>
> Hi,
>
> On 20/10/2011, at 7:13 PM, ext Pekka.E.Jokela at nokia.com
> <mailto:Pekka.E.Jokela at nokia.com>wrote:
>
> Is the timer buggy or “works as specified”:
>
> Timer {
>
> repeat: false
>
> onTriggered: {
>
> console.log(running) // true – I would assume false in non-repeating
> timer
>
> restart() // does not work – it calls stop and start but the timer
> stops this automatically
>
> }
>
> }
>
> The issue is clear when looking at the implementation:
>
> voidQDeclarativeTimer::finished()
>
> {
>
> Q_D(QDeclarativeTimer);
>
> if(d->repeating||!d->running)
>
> return;
>
> emit triggered();
>
> d->running = false;
>
> d->firstTick=false;
>
> emitrunningChanged();
>
> }
>
> Shouldn’t the ‘running = false’ and ‘emit triggered()’ be the other
> way around? This is is how the QTimer works i.e. in
> thetimeout()handler theactiveproperty is already set to false and it
> can be restarted.
>
> If this really is the wanted behavior, how do I restart the timer in
> the onTriggered event handler without setting the repeat to true (I
> use the same timer for many things and the repeat would just mess up
> everything).
>
> I don't think the current behavior is intentional. You can follow the
> issue at https://bugreports.qt.nokia.com/browse/QTBUG-22004.
>
> Regards,
>
> Michael
>
>
>
> _______________________________________________
> Qt-qml mailing list
> Qt-qml at qt.nokia.com
> http://lists.qt.nokia.com/mailman/listinfo/qt-qml
Bo Thorsen,
Fionia Software.
--
Expert Qt and C++ developer for hire
Contact me if you need expert Qt help
http://www.fioniasoftware.dk
More information about the Qt-qml
mailing list