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 <thiago.macieira@intel.com>
bb10
Edward Welbourne 2024-01-26 12:12:22 +01:00
parent 609a9bc939
commit 534e836b69
2 changed files with 46 additions and 4 deletions

View File

@ -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)

View File

@ -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;