Hi,

On 20/10/2011, at 7:13 PM, ext 
[email protected]<mailto:[email protected]> 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:

void QDeclarativeTimer::finished()
{
    Q_D(QDeclarativeTimer);
    if (d->repeating || !d->running)
        return;
    emit triggered();
    d->running = false;
    d->firstTick = false;
    emit runningChanged();
}

Shouldn’t the ‘running = false’ and ‘emit triggered()’ be the other way around? 
This is is how the QTimer works i.e. in the timeout() handler the active 
property 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
[email protected]
http://lists.qt.nokia.com/mailman/listinfo/qt-qml

Reply via email to