From ea0f8cee55e56d0f03ea9a185faee328b5cfa7bf Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Wed, 31 Jul 2024 17:31:16 +0200 Subject: [PATCH] Doc: Clarify setInterval() and start() for active timer Despite using different code paths, both stop and then re-start an already active timer, which invalidates the id(). While at it, port the occurrences of timerId() to the modern function id(), which exists in both QTimer and QChronoTimer Pick-to: 6.8 Change-Id: I5db099b198b1c11e1cdbd0fbb30ecece5d0135c8 Reviewed-by: Ahmad Samir Reviewed-by: Paul Wicking --- src/corelib/kernel/qchronotimer.cpp | 8 +++++--- src/corelib/kernel/qtimer.cpp | 6 ++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/corelib/kernel/qchronotimer.cpp b/src/corelib/kernel/qchronotimer.cpp index 20594aee52a..a7fd3383aff 100644 --- a/src/corelib/kernel/qchronotimer.cpp +++ b/src/corelib/kernel/qchronotimer.cpp @@ -183,7 +183,8 @@ Qt::TimerId QChronoTimer::id() const //! [stop-restart-timer] If the timer is already running, it will be - \l{QChronoTimer::stop()}{stopped} and restarted. + \l{QChronoTimer::stop()}{stopped} and restarted. This will also change its + id(). //! [stop-restart-timer] If \l singleShot is true, the timer will be activated only once. @@ -279,8 +280,9 @@ QBindable QChronoTimer::bindableSingleShot() A QChronoTimer with a timeout of \c 0ns will time out as soon as all the events in the window system's event queue have been processed. - Setting the interval of an active timer changes the interval and acquires - a new id(). If the timer is not active, only the interval is changed. + Setting the interval of an active timer will change the interval, + stop() and then start() the timer, and acquire a new id(). + If the timer is not active, only the interval is changed. \sa singleShot */ diff --git a/src/corelib/kernel/qtimer.cpp b/src/corelib/kernel/qtimer.cpp index f2311363781..c51988970be 100644 --- a/src/corelib/kernel/qtimer.cpp +++ b/src/corelib/kernel/qtimer.cpp @@ -204,7 +204,7 @@ Qt::TimerId QTimer::id() const //! [stop-restart-timer] If the timer is already running, it will be - \l{QTimer::stop()}{stopped} and restarted. + \l{QTimer::stop()}{stopped} and restarted. This will also change its id(). //! [stop-restart-timer] //! [singleshot-activation] @@ -591,7 +591,9 @@ QBindable QTimer::bindableSingleShot() interval of 0 will time out as soon as all the events in the window system's event queue have been processed. - Setting the interval of an active timer changes its timerId(). + Setting the interval of an active timer will change the interval, + stop() and then start() the timer, and acquire a new id(). + If the timer is not active, only the interval is changed. \sa singleShot */