From 2c690f274296ca4faef8df59e17af5cbff398702 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Thu, 28 Jan 2021 17:48:43 +0200 Subject: [PATCH] Revert "remove redundant QDateTimePrivate::LocalDST enum" This reverts commit 5d1d502b37b9f490c82463ed9aa10d712c65ff02. --- src/core/tools/qdatetime.cpp | 15 ++++++++++----- src/core/tools/qdatetime_p.h | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/core/tools/qdatetime.cpp b/src/core/tools/qdatetime.cpp index 0018fa829..d7043236b 100644 --- a/src/core/tools/qdatetime.cpp +++ b/src/core/tools/qdatetime.cpp @@ -2120,7 +2120,8 @@ void QDateTime::setDate(const QDate &date) { detach(); d->date = date; - if (d->spec == QDateTimePrivate::LocalStandard) + if (d->spec == QDateTimePrivate::LocalStandard + || d->spec == QDateTimePrivate::LocalDST) d->spec = QDateTimePrivate::LocalUnknown; if (date.isValid() && !d->time.isValid()) d->time = QTime(0, 0, 0); @@ -2135,7 +2136,8 @@ void QDateTime::setDate(const QDate &date) void QDateTime::setTime(const QTime &time) { detach(); - if (d->spec == QDateTimePrivate::LocalStandard) + if (d->spec == QDateTimePrivate::LocalStandard + || d->spec == QDateTimePrivate::LocalDST) d->spec = QDateTimePrivate::LocalUnknown; d->time = time; } @@ -2826,8 +2828,9 @@ QDateTime QDateTime::currentDateTime() dt.d->time.mds = msecsFromDecomposed(t->tm_hour, t->tm_min, t->tm_sec, tv.tv_usec / 1000); dt.d->date.jd = julianDayFromDate(t->tm_year + 1900, t->tm_mon + 1, t->tm_mday); - dt.d->spec = (t->tm_isdst >= 0 ? QDateTimePrivate::LocalStandard : - QDateTimePrivate::LocalUnknown); + dt.d->spec = t->tm_isdst > 0 ? QDateTimePrivate::LocalDST : + t->tm_isdst == 0 ? QDateTimePrivate::LocalStandard : + QDateTimePrivate::LocalUnknown; return dt; } @@ -3488,7 +3491,9 @@ static QDateTimePrivate::Spec utcToLocal(QDate &date, QTime &time) date = QDate(brokenDown->tm_year + 1900, brokenDown->tm_mon + 1, brokenDown->tm_mday); time = QTime(brokenDown->tm_hour, brokenDown->tm_min, brokenDown->tm_sec, time.msec()); date = date.addDays(deltaDays); - if (brokenDown->tm_isdst < 0) + if (brokenDown->tm_isdst > 0) + return QDateTimePrivate::LocalDST; + else if (brokenDown->tm_isdst < 0) return QDateTimePrivate::LocalUnknown; else return QDateTimePrivate::LocalStandard; diff --git a/src/core/tools/qdatetime_p.h b/src/core/tools/qdatetime_p.h index db34b20a2..2c01bf2d2 100644 --- a/src/core/tools/qdatetime_p.h +++ b/src/core/tools/qdatetime_p.h @@ -67,7 +67,7 @@ QT_BEGIN_NAMESPACE class QDateTimePrivate { public: - enum Spec { LocalUnknown = -1, LocalStandard = 0, UTC = 1, OffsetFromUTC = 2 }; + enum Spec { LocalUnknown = -1, LocalStandard = 0, LocalDST = 1, UTC = 2, OffsetFromUTC = 3}; QDateTimePrivate() : spec(LocalUnknown), utcOffset(0) {} QDateTimePrivate(const QDateTimePrivate &other) -- 2.11.0