QTimer: make both defaultTypeFor() methods constexpr and noexcept
Also de-duplicate the code by using defaultTypeFor() in singleShot(), this way the comment and the calculation are done in one central place. Change-Id: Ib822cae0e9228e546b664fbac728a60d65c4bbc3 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit adc0920c48d812fb1b3e2b7bfc76217a7126a41e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
25649bcd3b
commit
27291b97b4
@ -329,10 +329,7 @@ void QTimer::singleShotImpl(int msec, Qt::TimerType timerType,
|
||||
|
||||
void QTimer::singleShot(int msec, const QObject *receiver, const char *member)
|
||||
{
|
||||
// coarse timers are worst in their first firing
|
||||
// so we prefer a high precision timer for something that happens only once
|
||||
// unless the timeout is too big, in which case we go for coarse anyway
|
||||
singleShot(msec, msec >= 2000 ? Qt::CoarseTimer : Qt::PreciseTimer, receiver, member);
|
||||
singleShot(msec, defaultTypeFor(msec), receiver, member);
|
||||
}
|
||||
|
||||
/*! \overload
|
||||
|
@ -152,13 +152,20 @@ private:
|
||||
inline void killTimer(int){}
|
||||
|
||||
static constexpr Qt::TimerType defaultTypeFor(int msecs) noexcept
|
||||
{ return msecs >= 2000 ? Qt::CoarseTimer : Qt::PreciseTimer; }
|
||||
{ return defaultTypeFor(std::chrono::milliseconds{msecs}); }
|
||||
|
||||
static constexpr Qt::TimerType defaultTypeFor(std::chrono::milliseconds interval) noexcept
|
||||
{
|
||||
// coarse timers are worst in their first firing
|
||||
// so we prefer a high precision timer for something that happens only once
|
||||
// unless the timeout is too big, in which case we go for coarse anyway
|
||||
using namespace std::chrono_literals;
|
||||
return interval >= 2s ? Qt::CoarseTimer : Qt::PreciseTimer;
|
||||
}
|
||||
|
||||
static void singleShotImpl(int msec, Qt::TimerType timerType,
|
||||
const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj);
|
||||
|
||||
static Qt::TimerType defaultTypeFor(std::chrono::milliseconds interval)
|
||||
{ return defaultTypeFor(int(interval.count())); }
|
||||
|
||||
static void singleShotImpl(std::chrono::milliseconds interval, Qt::TimerType timerType,
|
||||
const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user