4#ifndef QTIMEZONELOCALE_P_H
5#define QTIMEZONELOCALE_P_H
17#include <private/qglobal_p.h>
19#include <QtCore/qstring.h>
20#include <QtCore/qtimezone.h>
23#include <unicode/ucal.h>
25#include <QtCore/private/qlocale_p.h>
34namespace QtTimeZoneLocale {
36QString ucalTimeZoneDisplayName(UCalendar *ucal, QTimeZone::TimeType timeType,
37 QTimeZone::NameType nameType,
38 const QByteArray &localeCode);
47QString zoneOffsetFormat(
const QLocale &locale, qsizetype locInd, QLocale::FormatType width,
48 const QDateTime &when,
int offsetSeconds);
53#define rangeGetter(name)
54 constexpr QLocaleData::DataRange name() const
55 { return { m_ ## name ## _idx, m_ ## name ## _size }; }
57#define declFieldIndex(name) quint16 m_ ## name ## _idx;
58#define declBigFieldIndex(name) quint32 m_ ## name ## _idx;
60#define declFieldSize(name) quint8 m_ ## name ## _size;
62#define forEachNameType(X, form) X(form ## Generic) X(form ## Standard) X(form ## DaylightSaving)
64#define timeTypeRange(form)
65 constexpr QLocaleData::DataRange form ## Name(QTimeZone::TimeType timeType) const
68 case QTimeZone::StandardTime: return form ## Standard();
69 case QTimeZone::DaylightTime: return form ## DaylightSaving();
70 case QTimeZone::GenericTime: return form ## Generic();
72 Q_UNREACHABLE_RETURN({});
79#ifdef QT_CLDR_ZONE_DEBUG
92#define forEachField(X)
93 X(posHourFormat) X(negHourFormat) X(offsetGmtFormat) X(fallbackFormat)
94 forEachNameType(X, regionFormat)
105#define regionFormatName regionFormatRange
107#undef regionFormatName
128 QTimeZone::TimeType timeType)
const
130 return nameType == QTimeZone::ShortName ? shortName(timeType) : longName(timeType);
134#define forEach32BitField(X) forEachNameType(X, long)
135#define forEach16BitField(X) forEachNameType(X, short)
136#define forEachField(X) forEach32BitField(X) forEach16BitField(X)
147#undef forEach16BitField
148#undef forEach32BitField
157#define forEachField(X) forEachNameType(X, long)
174#define forEachField(X) forEachNameType(X, short)
186#undef forEachNameType
QList< qsizetype > fallbackLocalesFor(qsizetype index)
QList< QByteArrayView > ianaIdsForTerritory(QLocale::Territory territory)
QT_REQUIRE_CONFIG(animation)
#define rangeGetter(name)
#define timeTypeRange(form)
QT_REQUIRE_CONFIG(timezone_locale)
#define forEach16BitField(X)
#define forEach32BitField(X)
static bool ucalOffsetsAtTime(UCalendar *m_ucal, qint64 atMSecsSinceEpoch, int *utcOffset, int *dstOffset)
static int ucalDaylightOffset(const QByteArray &id)
static QList< QByteArray > uenumToIdList(UEnumeration *uenum)
quint32 m_metaLongTableStart
quint16 m_metaShortTableStart
quint32 m_exemplarTableStart
quint32 m_exemplarCity_idx
quint8 m_exemplarCity_size
constexpr QByteArrayView ianaId() const
constexpr QLocaleData::DataRange name(QTimeZone::NameType nameType, QTimeZone::TimeType timeType) const
constexpr QByteArrayView ianaId() const