QBasicTimer: port to Qt::TimerId
[ChangeLog][QtCore][QBasicTimer] Added id() method returning Qt::TimerId. Fixes: QTBUG-128144 Change-Id: Idbe29311cca3befb771dbf1ef976a42e65e59ce9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 751cbbd6b13d9899e31c19d9db80d1c64a72a8bd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
0945ca9a01
commit
c9fe636dfc
@ -101,12 +101,24 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn int QBasicTimer::timerId() const
|
\fn int QBasicTimer::timerId() const
|
||||||
|
\obsolete
|
||||||
|
|
||||||
Returns the timer's ID.
|
Returns the timer's ID.
|
||||||
|
|
||||||
|
In new code use id() instead.
|
||||||
|
|
||||||
\sa QTimerEvent::timerId()
|
\sa QTimerEvent::timerId()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\fn Qt::TimerId QBasicTimer::id() const
|
||||||
|
\since 6.8
|
||||||
|
|
||||||
|
Returns the timer's ID.
|
||||||
|
|
||||||
|
\sa QTimerEvent::id()
|
||||||
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\fn void QBasicTimer::start(int msec, QObject *object)
|
\fn void QBasicTimer::start(int msec, QObject *object)
|
||||||
|
|
||||||
@ -165,7 +177,7 @@ void QBasicTimer::start(std::chrono::milliseconds duration, Qt::TimerType timerT
|
|||||||
}
|
}
|
||||||
stop();
|
stop();
|
||||||
if (obj)
|
if (obj)
|
||||||
id = int(eventDispatcher->registerTimer(duration, timerType, obj));
|
m_id = eventDispatcher->registerTimer(duration, timerType, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -175,15 +187,15 @@ void QBasicTimer::start(std::chrono::milliseconds duration, Qt::TimerType timerT
|
|||||||
*/
|
*/
|
||||||
void QBasicTimer::stop()
|
void QBasicTimer::stop()
|
||||||
{
|
{
|
||||||
if (id) {
|
if (isActive()) {
|
||||||
QAbstractEventDispatcher *eventDispatcher = QAbstractEventDispatcher::instance();
|
QAbstractEventDispatcher *eventDispatcher = QAbstractEventDispatcher::instance();
|
||||||
if (eventDispatcher && !eventDispatcher->unregisterTimer(Qt::TimerId(id))) {
|
if (eventDispatcher && !eventDispatcher->unregisterTimer(m_id)) {
|
||||||
qWarning("QBasicTimer::stop: Failed. Possibly trying to stop from a different thread");
|
qWarning("QBasicTimer::stop: Failed. Possibly trying to stop from a different thread");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QAbstractEventDispatcherPrivate::releaseTimerId(id);
|
QAbstractEventDispatcherPrivate::releaseTimerId(m_id);
|
||||||
}
|
}
|
||||||
id = 0;
|
m_id = Qt::TimerId::Invalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -16,23 +16,24 @@ class QObject;
|
|||||||
|
|
||||||
class Q_CORE_EXPORT QBasicTimer
|
class Q_CORE_EXPORT QBasicTimer
|
||||||
{
|
{
|
||||||
int id;
|
Qt::TimerId m_id;
|
||||||
Q_DISABLE_COPY(QBasicTimer)
|
Q_DISABLE_COPY(QBasicTimer)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
constexpr QBasicTimer() noexcept : id{0} {}
|
constexpr QBasicTimer() noexcept : m_id{Qt::TimerId::Invalid} {}
|
||||||
inline ~QBasicTimer() { if (id) stop(); }
|
~QBasicTimer() { if (isActive()) stop(); }
|
||||||
|
|
||||||
QBasicTimer(QBasicTimer &&other) noexcept
|
QBasicTimer(QBasicTimer &&other) noexcept
|
||||||
: id{std::exchange(other.id, 0)}
|
: m_id{std::exchange(other.m_id, Qt::TimerId::Invalid)}
|
||||||
{}
|
{}
|
||||||
|
|
||||||
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QBasicTimer)
|
QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(QBasicTimer)
|
||||||
|
|
||||||
void swap(QBasicTimer &other) noexcept { std::swap(id, other.id); }
|
void swap(QBasicTimer &other) noexcept { std::swap(m_id, other.m_id); }
|
||||||
|
|
||||||
bool isActive() const noexcept { return id != 0; }
|
bool isActive() const noexcept { return m_id != Qt::TimerId::Invalid; }
|
||||||
int timerId() const noexcept { return id; }
|
int timerId() const noexcept { return qToUnderlying(id()); }
|
||||||
|
Qt::TimerId id() const noexcept { return m_id; }
|
||||||
QT_CORE_INLINE_SINCE(6, 5)
|
QT_CORE_INLINE_SINCE(6, 5)
|
||||||
void start(int msec, QObject *obj);
|
void start(int msec, QObject *obj);
|
||||||
QT_CORE_INLINE_SINCE(6, 5)
|
QT_CORE_INLINE_SINCE(6, 5)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user