From 79f70000993448196f6679ffe78da6991144a7c0 Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Fri, 21 Jul 2023 20:24:09 +0300 Subject: [PATCH] QTimer: fix API docs of callOnTimeOut overload It actually takes one parameter, because in this overload the connection type can't be specified, for example: QTimer timer; timer.callOnTimeout([]() { qDebug() << "slot"; }); The call chain is: QObject::connect(timer, &QTimer::timeout, functor); connect(const typename QtPrivate::FunctionPointer::Object *sender, Func1 signal, Func2 &&slot) connect(sender, signal, sender, std::forward(slot), Qt::DirectConnection); the connection type is always DirectConnection. Spotted by Giuseppe in code review. Change-Id: Ia8bbd91e98a357244cbfae4e3ed63d4c73038fa2 Reviewed-by: Giuseppe D'Angelo (cherry picked from commit 794e0d1ac6b99c9398e4802b4f9e60012dcf055d) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/kernel/qtimer.cpp | 12 +++++++----- src/corelib/kernel/qtimer.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/corelib/kernel/qtimer.cpp b/src/corelib/kernel/qtimer.cpp index ea23e3e2f41..57cb0c5cd1d 100644 --- a/src/corelib/kernel/qtimer.cpp +++ b/src/corelib/kernel/qtimer.cpp @@ -505,14 +505,16 @@ void QTimer::singleShot(int msec, Qt::TimerType timerType, const QObject *receiv */ /*! - \fn template QMetaObject::Connection QTimer::callOnTimeout(Functor &&slot, Qt::ConnectionType connectionType = Qt::AutoConnection) + \fn template QMetaObject::Connection QTimer::callOnTimeout(Functor &&slot) \since 5.12 - Creates a connection of type \a connectionType from the timeout() signal - to \a slot, and returns a handle to the connection. + Creates a connection from the timer's timeout() signal to \a slot. + Returns a handle to the connection. - This method is provided for convenience. - It's equivalent to calling \c {QObject::connect(timer, &QTimer::timeout, timer, slot, connectionType)}. + This method is provided for convenience. It's equivalent to calling: + \code + QObject::connect(timer, &QTimer::timeout, timer, slot, Qt::DirectConnection); + \endcode \sa QObject::connect(), timeout() */ diff --git a/src/corelib/kernel/qtimer.h b/src/corelib/kernel/qtimer.h index e77db27049d..b01cfdec9ab 100644 --- a/src/corelib/kernel/qtimer.h +++ b/src/corelib/kernel/qtimer.h @@ -89,7 +89,7 @@ public: #ifdef Q_QDOC template - QMetaObject::Connection callOnTimeout(Functor &&slot, Qt::ConnectionType connectionType = Qt::AutoConnection); + QMetaObject::Connection callOnTimeout(Functor &&slot); template QMetaObject::Connection callOnTimeout(const QObject *context, Functor &&slot, Qt::ConnectionType connectionType = Qt::AutoConnection); #else