From 534e836b69b2f8c5f779b66b05c01bb00b9233f1 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Fri, 26 Jan 2024 12:12:22 +0100 Subject: [PATCH] QDate(Time)?::toString(): eliminate QCalendar() defaults Since QCalendar is non-trivial, parameters of this type should not have a default in the declaration; better to have an overload set with the calendar-less overload out-of-line passing the default. This actually restores signatures that existed previously, but that were merged with the QCalendar-taking overloads at Qt 6. Pick-to: 6.7 Fixes: QTBUG-121528 Change-Id: Ib10ced67a2398108a31c7e95d5e865b7959bed4d Reviewed-by: Thiago Macieira --- src/corelib/time/qdatetime.cpp | 38 ++++++++++++++++++++++++++++++++++ src/corelib/time/qdatetime.h | 12 +++++++---- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index 1f401948cc..7d11605671 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -1297,6 +1297,25 @@ QString QDate::toString(QStringView format, QCalendar cal) const { return QLocale::c().toString(*this, format, cal); } + +// Out-of-line no-calendar overloads, since QCalendar is a non-trivial type +/*! + \overload + \since 5.10 +*/ +QString QDate::toString(QStringView format) const +{ + return QLocale::c().toString(*this, format, QCalendar()); +} + +/*! + \overload + \since 4.6 +*/ +QString QDate::toString(const QString &format) const +{ + return QLocale::c().toString(*this, qToStringViewIgnoringNull(format), QCalendar()); +} #endif // datestring /*! @@ -4689,6 +4708,25 @@ QString QDateTime::toString(QStringView format, QCalendar cal) const { return QLocale::c().toString(*this, format, cal); } + +// Out-of-line no-calendar overloads, since QCalendar is a non-trivial type +/*! + \overload + \since 5.10 +*/ +QString QDateTime::toString(QStringView format) const +{ + return QLocale::c().toString(*this, format, QCalendar()); +} + +/*! + \overload + \since 4.6 +*/ +QString QDateTime::toString(const QString &format) const +{ + return QLocale::c().toString(*this, qToStringViewIgnoringNull(format), QCalendar()); +} #endif // datestring static inline void massageAdjustedDateTime(QDateTimeData &d, QDate date, QTime time, bool forward) diff --git a/src/corelib/time/qdatetime.h b/src/corelib/time/qdatetime.h index cec7771a8d..1474e2c6f4 100644 --- a/src/corelib/time/qdatetime.h +++ b/src/corelib/time/qdatetime.h @@ -102,9 +102,11 @@ public: #if QT_CONFIG(datestring) QString toString(Qt::DateFormat format = Qt::TextDate) const; - QString toString(const QString &format, QCalendar cal = QCalendar()) const + QString toString(const QString &format) const; + QString toString(const QString &format, QCalendar cal) const { return toString(qToStringViewIgnoringNull(format), cal); } - QString toString(QStringView format, QCalendar cal = QCalendar()) const; + QString toString(QStringView format) const; + QString toString(QStringView format, QCalendar cal) const; #endif bool setDate(int year, int month, int day); // Gregorian-optimized bool setDate(int year, int month, int day, QCalendar cal); @@ -409,9 +411,11 @@ public: #if QT_CONFIG(datestring) QString toString(Qt::DateFormat format = Qt::TextDate) const; - QString toString(const QString &format, QCalendar cal = QCalendar()) const + QString toString(const QString &format) const; + QString toString(const QString &format, QCalendar cal) const { return toString(qToStringViewIgnoringNull(format), cal); } - QString toString(QStringView format, QCalendar cal = QCalendar()) const; + QString toString(QStringView format) const; + QString toString(QStringView format, QCalendar cal) const; #endif [[nodiscard]] QDateTime addDays(qint64 days) const; [[nodiscard]] QDateTime addMonths(int months) const;