diff options
Diffstat (limited to 'src/corelib/time/qtimezoneprivate_p.h')
-rw-r--r-- | src/corelib/time/qtimezoneprivate_p.h | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/src/corelib/time/qtimezoneprivate_p.h b/src/corelib/time/qtimezoneprivate_p.h index 506acaa1f7..7034a7285c 100644 --- a/src/corelib/time/qtimezoneprivate_p.h +++ b/src/corelib/time/qtimezoneprivate_p.h @@ -99,6 +99,8 @@ public: virtual bool isDaylightTime(qint64 atMSecsSinceEpoch) const; virtual Data data(qint64 forMSecsSinceEpoch) const; + virtual Data data(QTimeZone::TimeType timeType) const; + virtual bool isDataLocale(const QLocale &locale) const; QDateTimePrivate::ZoneState stateAtZoneTime(qint64 forLocalMSecs, QDateTimePrivate::TransitionOptions resolve) const; @@ -131,6 +133,7 @@ public: static QString isoOffsetFormat(int offsetFromUtc, QTimeZone::NameType mode = QTimeZone::OffsetName); + static QByteArray aliasToIana(QByteArrayView alias); static QByteArray ianaIdToWindowsId(const QByteArray &ianaId); static QByteArray windowsIdToDefaultIanaId(const QByteArray &windowsId); static QByteArray windowsIdToDefaultIanaId(const QByteArray &windowsId, @@ -150,6 +153,15 @@ public: return QByteArrayLiteral("UTC"); } +#if QT_CONFIG(timezone_locale) +private: + // Defined in qtimezonelocale.cpp + QString localeName(qint64 atMSecsSinceEpoch, int offsetFromUtc, + QTimeZone::TimeType timeType, + QTimeZone::NameType nameType, + const QLocale &locale) const; +#endif // L10n helpers. + protected: QByteArray m_id; }; @@ -179,11 +191,15 @@ public: QUtcTimeZonePrivate *clone() const override; Data data(qint64 forMSecsSinceEpoch) const override; + Data data(QTimeZone::TimeType timeType) const override; + bool isDataLocale(const QLocale &locale) const override; QLocale::Territory territory() const override; QString comment() const override; - using QTimeZonePrivate::displayName; + QString displayName(qint64 atMSecsSinceEpoch, + QTimeZone::NameType nameType, + const QLocale &locale) const override; QString displayName(QTimeZone::TimeType timeType, QTimeZone::NameType nameType, const QLocale &locale) const override; @@ -217,7 +233,7 @@ private: // TODO: shuffle (almost reverse) order of and rework #if-ery here to use #elif // and match the #if-ery in each of QTZ's newBackendTimeZone() cascades for // backend selection. -#if QT_CONFIG(icu) +#if QT_CONFIG(icu) && !defined(Q_OS_UNIX) class Q_AUTOTEST_EXPORT QIcuTimeZonePrivate final : public QTimeZonePrivate { public: @@ -241,6 +257,7 @@ public: bool hasDaylightTime() const override; bool isDaylightTime(qint64 atMSecsSinceEpoch) const override; + using QTimeZonePrivate::data; Data data(qint64 forMSecsSinceEpoch) const override; bool hasTransitions() const override; @@ -259,7 +276,7 @@ private: UCalendar *m_ucal; }; -#endif // ICU +#endif // ICU not on Unix. #if defined(Q_OS_UNIX) && !defined(Q_OS_DARWIN) && !defined(Q_OS_ANDROID) struct QTzTransitionTime @@ -321,6 +338,8 @@ public: bool isDaylightTime(qint64 atMSecsSinceEpoch) const override; Data data(qint64 forMSecsSinceEpoch) const override; + Data data(QTimeZone::TimeType timeType) const override; + bool isDataLocale(const QLocale &locale) const override; bool hasTransitions() const override; Data nextTransition(qint64 afterMSecsSinceEpoch) const override; @@ -338,14 +357,6 @@ private: Data dataForTzTransition(QTzTransitionTime tran) const; Data dataFromRule(QTzTransitionRule rule, qint64 msecsSinceEpoch) const; -#if QT_CONFIG(icu) -# ifdef __cpp_lib_is_final - static_assert(std::is_final<QIcuTimeZonePrivate>::value, - "if QIcuTimeZonePrivate isn't final, we may need to specialize " - "QExplicitlySharedDataPointer::clone() to call QTimeZonePrivate::clone()"); -# endif - mutable QExplicitlySharedDataPointer<const QIcuTimeZonePrivate> m_icu; -#endif QTzTimeZoneCacheEntry cached_data; const QList<QTzTransitionTime> &tranCache() const { return cached_data.m_tranTimes; } }; @@ -378,6 +389,7 @@ public: bool hasDaylightTime() const override; bool isDaylightTime(qint64 atMSecsSinceEpoch) const override; + using QTimeZonePrivate::data; Data data(qint64 forMSecsSinceEpoch) const override; bool hasTransitions() const override; @@ -432,6 +444,7 @@ public: bool hasDaylightTime() const override; bool isDaylightTime(qint64 atMSecsSinceEpoch) const override; + using QTimeZonePrivate::data; Data data(qint64 forMSecsSinceEpoch) const override; bool hasTransitions() const override; @@ -481,6 +494,7 @@ public: bool hasDaylightTime() const override; bool isDaylightTime(qint64 atMSecsSinceEpoch) const override; + using QTimeZonePrivate::data; Data data(qint64 forMSecsSinceEpoch) const override; QByteArray systemTimeZoneId() const override; |