diff options
Diffstat (limited to 'src/corelib/text/qlocale.h')
-rw-r--r-- | src/corelib/text/qlocale.h | 93 |
1 files changed, 75 insertions, 18 deletions
diff --git a/src/corelib/text/qlocale.h b/src/corelib/text/qlocale.h index 5ba29f6093..abef24ea0e 100644 --- a/src/corelib/text/qlocale.h +++ b/src/corelib/text/qlocale.h @@ -36,6 +36,8 @@ class Q_CORE_EXPORT QLocale friend class QTextStreamPrivate; public: + static constexpr int DefaultTwoDigitBaseYear = 1900; + // see qlocale_data_p.h for more info on generated data // GENERATED PART STARTS HERE enum Language : ushort { @@ -369,6 +371,20 @@ public: Zulu = 327, Kaingang = 328, Nheengatu = 329, + Haryanvi = 330, + NorthernFrisian = 331, + Rajasthani = 332, + Moksha = 333, + TokiPona = 334, + Pijin = 335, + Obolo = 336, + Baluchi = 337, + Ligurian = 338, + Rohingya = 339, + Torwali = 340, + Anii = 341, + Kangri = 342, + Venetian = 343, Afan = Oromo, Bengali = Bangla, @@ -390,7 +406,7 @@ public: Uigur = Uyghur, Walamo = Wolaytta, - LastLanguage = Nheengatu + LastLanguage = Venetian }; enum Script : ushort { @@ -536,6 +552,7 @@ public: VaiScript = 139, VarangKshitiScript = 140, YiScript = 141, + HanifiScript = 142, BengaliScript = BanglaScript, MendeKikakuiScript = MendeScript, @@ -543,7 +560,7 @@ public: SimplifiedChineseScript = SimplifiedHanScript, TraditionalChineseScript = TraditionalHanScript, - LastScript = YiScript + LastScript = HanifiScript }; // ### Qt 7: Rename to Territory @@ -856,6 +873,7 @@ public: Q_ENUM(MeasurementSystem) enum FormatType { LongFormat, ShortFormat, NarrowFormat }; + Q_ENUM(FormatType) enum NumberOption { DefaultNumberOptions = 0x0, OmitGroupSeparator = 0x01, @@ -866,16 +884,21 @@ public: RejectTrailingZeroesAfterDot = 0x20 }; Q_DECLARE_FLAGS(NumberOptions, NumberOption) + Q_FLAG(NumberOptions) enum FloatingPointPrecisionOption { FloatingPointShortest = -128 }; + enum class TagSeparator : char { Dash = '-', Underscore = '_' }; + Q_ENUM(TagSeparator) + enum CurrencySymbolFormat { CurrencyIsoCode, CurrencySymbol, CurrencyDisplayName }; + Q_ENUM(CurrencySymbolFormat) enum DataSizeFormat { // Single-bit values, for internal use. @@ -891,15 +914,14 @@ public: Q_FLAG(DataSizeFormats) QLocale(); -#if QT_STRINGVIEW_LEVEL < 2 + QT_CORE_INLINE_SINCE(6, 4) explicit QLocale(const QString &name); -#endif explicit QLocale(QStringView name); QLocale(Language language, Territory territory); QLocale(Language language, Script script = AnyScript, Territory territory = AnyTerritory); - QLocale(const QLocale &other); + QLocale(const QLocale &other) noexcept; QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QLocale) - QLocale &operator=(const QLocale &other); + QLocale &operator=(const QLocale &other) noexcept; ~QLocale(); void swap(QLocale &other) noexcept { d.swap(other.d); } @@ -911,9 +933,14 @@ public: QT_DEPRECATED_VERSION_X_6_6("Use territory() instead") Country country() const; #endif - QString name() const; +#if QT_CORE_REMOVED_SINCE(6, 7) + QString name() const; QString bcp47Name() const; +#endif + QString name(TagSeparator separator = TagSeparator::Underscore) const; + QString bcp47Name(TagSeparator separator = TagSeparator::Dash) const; + QString nativeLanguageName() const; QString nativeTerritoryName() const; #if QT_DEPRECATED_SINCE(6, 6) @@ -921,7 +948,6 @@ public: QString nativeCountryName() const; #endif -#if QT_STRINGVIEW_LEVEL < 2 short toShort(const QString &s, bool *ok = nullptr) const { return toShort(qToStringViewIgnoringNull(s), ok); } ushort toUShort(const QString &s, bool *ok = nullptr) const @@ -942,7 +968,6 @@ public: { return toFloat(qToStringViewIgnoringNull(s), ok); } double toDouble(const QString &s, bool *ok = nullptr) const { return toDouble(qToStringViewIgnoringNull(s), ok); } -#endif short toShort(QStringView s, bool *ok = nullptr) const; ushort toUShort(QStringView s, bool *ok = nullptr) const; @@ -967,13 +992,11 @@ public: QString toString(float f, char format = 'g', int precision = 6) const { return toString(double(f), format, precision); } -#if QT_STRINGVIEW_LEVEL < 2 // (Can't inline first two: passing by value doesn't work when only forward-declared.) QString toString(QDate date, const QString &format) const; QString toString(QTime time, const QString &format) const; QString toString(const QDateTime &dateTime, const QString &format) const { return toString(dateTime, qToStringViewIgnoringNull(format)); } -#endif QString toString(QDate date, QStringView format) const; QString toString(QTime time, QStringView format) const; QString toString(const QDateTime &dateTime, QStringView format) const; @@ -993,18 +1016,39 @@ public: QString dateFormat(FormatType format = LongFormat) const; QString timeFormat(FormatType format = LongFormat) const; QString dateTimeFormat(FormatType format = LongFormat) const; + // QCalendar's header has to #include QLocale's, preventing the reverse, so + // QCalendar parameters can't have defaults here. #if QT_CONFIG(datestring) - QDate toDate(const QString &string, FormatType = LongFormat) const; QTime toTime(const QString &string, FormatType = LongFormat) const; - QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; - QDate toDate(const QString &string, const QString &format) const; QTime toTime(const QString &string, const QString &format) const; +# if QT_CORE_REMOVED_SINCE(6, 7) + QDate toDate(const QString &string, FormatType = LongFormat) const; + QDate toDate(const QString &string, const QString &format) const; + QDateTime toDateTime(const QString &string, FormatType format = LongFormat) const; QDateTime toDateTime(const QString &string, const QString &format) const; // Calendar-aware API QDate toDate(const QString &string, FormatType format, QCalendar cal) const; - QDateTime toDateTime(const QString &string, FormatType format, QCalendar cal) const; QDate toDate(const QString &string, const QString &format, QCalendar cal) const; + QDateTime toDateTime(const QString &string, FormatType format, QCalendar cal) const; QDateTime toDateTime(const QString &string, const QString &format, QCalendar cal) const; +# endif + QDate toDate(const QString &string, FormatType = LongFormat, + int baseYear = DefaultTwoDigitBaseYear) const; + QDate toDate(const QString &string, const QString &format, + int baseYear = DefaultTwoDigitBaseYear) const; + QDateTime toDateTime(const QString &string, FormatType format = LongFormat, + int baseYear = DefaultTwoDigitBaseYear) const; + QDateTime toDateTime(const QString &string, const QString &format, + int baseYear = DefaultTwoDigitBaseYear) const; + // Calendar-aware API + QDate toDate(const QString &string, FormatType format, QCalendar cal, + int baseYear = DefaultTwoDigitBaseYear) const; + QDate toDate(const QString &string, const QString &format, QCalendar cal, + int baseYear = DefaultTwoDigitBaseYear) const; + QDateTime toDateTime(const QString &string, FormatType format, QCalendar cal, + int baseYear = DefaultTwoDigitBaseYear) const; + QDateTime toDateTime(const QString &string, const QString &format, QCalendar cal, + int baseYear = DefaultTwoDigitBaseYear) const; #endif QString decimalPoint() const; @@ -1050,7 +1094,10 @@ public: QString formattedDataSize(qint64 bytes, int precision = 2, DataSizeFormats format = DataSizeIecFormat) const; +#if QT_CORE_REMOVED_SINCE(6, 7) QStringList uiLanguages() const; +#endif + QStringList uiLanguages(TagSeparator separator = TagSeparator::Dash) const; enum LanguageCodeType { ISO639Part1 = 1 << 0, @@ -1067,6 +1114,7 @@ public: AnyLanguageCode = -1 }; Q_DECLARE_FLAGS(LanguageCodeTypes, LanguageCodeType) + Q_FLAG(LanguageCodeTypes) #if QT_CORE_REMOVED_SINCE(6, 3) static QString languageToCode(Language language); @@ -1109,6 +1157,7 @@ public: NumberOptions numberOptions() const; enum QuotationStyle { StandardQuotation, AlternateQuotation }; + Q_ENUM(QuotationStyle) QString quoteString(const QString &str, QuotationStyle style = StandardQuotation) const { return quoteString(QStringView(str), style); } QString quoteString(QStringView str, QuotationStyle style = StandardQuotation) const; @@ -1121,11 +1170,14 @@ private: friend class QLocalePrivate; friend class QSystemLocale; friend class QCalendarBackend; - friend class QGregorianCalendar; + friend class QRomanCalendar; friend Q_CORE_EXPORT size_t qHash(const QLocale &key, size_t seed) noexcept; - friend bool operator==(const QLocale &lhs, const QLocale &rhs) { return lhs.equals(rhs); } - friend bool operator!=(const QLocale &lhs, const QLocale &rhs) { return !lhs.equals(rhs); } + friend bool comparesEqual(const QLocale &lhs, const QLocale &rhs) noexcept + { + return lhs.equals(rhs); + } + Q_DECLARE_EQUALITY_COMPARABLE(QLocale) QSharedDataPointer<QLocalePrivate> d; }; @@ -1133,6 +1185,11 @@ Q_DECLARE_SHARED(QLocale) Q_DECLARE_OPERATORS_FOR_FLAGS(QLocale::NumberOptions) Q_DECLARE_OPERATORS_FOR_FLAGS(QLocale::LanguageCodeTypes) +#if QT_CORE_INLINE_IMPL_SINCE(6, 4) +QLocale::QLocale(const QString &name) + : QLocale(qToStringViewIgnoringNull(name)) {} +#endif + #ifndef QT_NO_DATASTREAM Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QLocale &); Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QLocale &); |