From 4593892a9b854eaa1e109ed6412795b1ddc13646 Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Wed, 18 Sep 2024 22:37:57 +0300 Subject: [PATCH] QTimerEvent: add matches(const QBasicTimer &) convenience method Requested in code review. Change-Id: If50f14db8c81890877677bb8c214d426b1dc1ad4 Reviewed-by: Thiago Macieira Reviewed-by: Volker Hilsheimer --- src/corelib/kernel/qcoreevent.cpp | 8 ++++++++ src/corelib/kernel/qcoreevent.h | 3 +++ .../auto/corelib/kernel/qchronotimer/tst_qchronotimer.cpp | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/corelib/kernel/qcoreevent.cpp b/src/corelib/kernel/qcoreevent.cpp index 1623855d95a..abe4f9bbbaa 100644 --- a/src/corelib/kernel/qcoreevent.cpp +++ b/src/corelib/kernel/qcoreevent.cpp @@ -566,6 +566,14 @@ Q_IMPL_EVENT_COMMON(QTimerEvent) Qt::TimerId. */ +/*! + \fn QTimerEvent::matches(const QBasicTimer &timer) const + \since 6.9 + + Returns \c true if this timer event and \a timer have the same ID, + otherwise returns \c false. +*/ + /*! \class QChildEvent \inmodule QtCore diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h index ae512a99b43..1f27da6cce5 100644 --- a/src/corelib/kernel/qcoreevent.h +++ b/src/corelib/kernel/qcoreevent.h @@ -4,6 +4,7 @@ #ifndef QCOREEVENT_H #define QCOREEVENT_H +#include #include #include #include @@ -371,6 +372,8 @@ class Q_CORE_EXPORT QTimerEvent : public QEvent int timerId() const { return qToUnderlying(id()); } Qt::TimerId id() const { return m_id; } + bool matches(const QBasicTimer &timer) const noexcept + { return m_id == timer.id(); } protected: Qt::TimerId m_id; diff --git a/tests/auto/corelib/kernel/qchronotimer/tst_qchronotimer.cpp b/tests/auto/corelib/kernel/qchronotimer/tst_qchronotimer.cpp index e963b1f018d..18b2c31331d 100644 --- a/tests/auto/corelib/kernel/qchronotimer/tst_qchronotimer.cpp +++ b/tests/auto/corelib/kernel/qchronotimer/tst_qchronotimer.cpp @@ -696,7 +696,7 @@ class RestartedTimerFiresTooSoonObject : public QObject void timerEvent(QTimerEvent* ev) override { - if (ev->timerId() != m_timer.timerId()) + if (!ev->matches(m_timer)) return; m_timer.stop();