diff --git a/src/corelib/kernel/qcoreevent.cpp b/src/corelib/kernel/qcoreevent.cpp index 9c995302680..370154bd5dd 100644 --- a/src/corelib/kernel/qcoreevent.cpp +++ b/src/corelib/kernel/qcoreevent.cpp @@ -533,9 +533,21 @@ int QEvent::registerEventType(int hint) noexcept \a timerId. */ QTimerEvent::QTimerEvent(int timerId) - : QEvent(Timer), id(timerId) + : QTimerEvent(Qt::TimerId{timerId}) {} +/*! + \since 6.8 + + Constructs a timer event object with the timer identifier set to + \a timerId. +*/ +QTimerEvent::QTimerEvent(Qt::TimerId timerId) + : QEvent(Timer), m_id(timerId) +{ + static_assert(sizeof(Qt::TimerId) == sizeof(int)); +} + Q_IMPL_EVENT_COMMON(QTimerEvent) /*! @@ -545,6 +557,15 @@ Q_IMPL_EVENT_COMMON(QTimerEvent) as returned from QObject::startTimer(). */ +/*! + \fn Qt::TimerId QTimerEvent::id() const + \since 6.8 + + Returns the Qt::TimerId of the timer associated with this event, which + is the same identifier returned by QObject::startTimer() cast to + Qt::TimerId. +*/ + /*! \class QChildEvent \inmodule QtCore diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h index 38c0680a123..ae512a99b43 100644 --- a/src/corelib/kernel/qcoreevent.h +++ b/src/corelib/kernel/qcoreevent.h @@ -367,10 +367,13 @@ class Q_CORE_EXPORT QTimerEvent : public QEvent Q_DECL_EVENT_COMMON(QTimerEvent) public: explicit QTimerEvent(int timerId); - int timerId() const { return id; } + explicit QTimerEvent(Qt::TimerId timerId); + + int timerId() const { return qToUnderlying(id()); } + Qt::TimerId id() const { return m_id; } protected: - int id; + Qt::TimerId m_id; }; class QObject;