summaryrefslogtreecommitdiffstats
path: root/src/corelib/text/qlocale.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/text/qlocale.h')
-rw-r--r--src/corelib/text/qlocale.h86
1 files changed, 70 insertions, 16 deletions
diff --git a/src/corelib/text/qlocale.h b/src/corelib/text/qlocale.h
index 5ba29f6093..cb3eb64193 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,7 +1170,7 @@ 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); }
@@ -1133,6 +1182,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 &);