Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qohossystemlocale.cpp
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5#include <QtCore/qdatetime.h>
6
8
9namespace {
10
11QString currencyToString(const QLocale &locale, const QVariant &in)
12{
13 switch (in.typeId()) {
14 case QMetaType::Int:
15 return locale.toCurrencyString(in.toInt());
16 case QMetaType::UInt:
17 return locale.toCurrencyString(in.toUInt());
18 case QMetaType::Double:
19 return locale.toCurrencyString(in.toDouble());
20 case QMetaType::LongLong:
21 return locale.toCurrencyString(in.toLongLong());
22 case QMetaType::ULongLong:
23 return locale.toCurrencyString(in.toULongLong());
24 default:
25 break;
26 }
27
28 return QString();
29}
30
31}
32
33QOhosSystemLocale::QOhosSystemLocale(const QString &systemLocaleId, const QStringList &preferredLanguages)
36{ }
37
38QVariant QOhosSystemLocale::query(QueryType type, QVariant &&in) const
39{
40 auto locale = fallbackLocale();
41
42 switch (type) {
43 case LanguageId:
44 return locale.language();
45 case TerritoryId:
46 return locale.territory();
47 case DecimalPoint:
48 return locale.decimalPoint();
49 case GroupSeparator:
50 return locale.groupSeparator();
51 case ZeroDigit:
52 return locale.zeroDigit();
53 case NegativeSign:
54 return locale.negativeSign();
55 case DateFormatLong:
56 return locale.dateFormat(QLocale::LongFormat);
57 case DateFormatShort:
58 return locale.dateFormat(QLocale::ShortFormat);
59 case TimeFormatLong:
60 return locale.timeFormat(QLocale::LongFormat);
61 case TimeFormatShort:
62 return locale.timeFormat(QLocale::ShortFormat);
63 case DayNameLong:
64 return locale.dayName(in.toInt(), QLocale::LongFormat);
65 case DayNameShort:
66 return locale.dayName(in.toInt(), QLocale::ShortFormat);
67 case MonthNameLong:
68 return locale.monthName(in.toInt(), QLocale::LongFormat);
69 case MonthNameShort:
70 return locale.monthName(in.toInt(), QLocale::ShortFormat);
71 case DateToStringLong:
72 return locale.toString(in.toDate(), QLocale::LongFormat);
73 case DateToStringShort:
74 return locale.toString(in.toDate(), QLocale::ShortFormat);
75 case TimeToStringLong:
76 return locale.toString(in.toTime(), QLocale::LongFormat);
77 case TimeToStringShort:
78 return locale.toString(in.toTime(), QLocale::ShortFormat);
79 case DateTimeFormatLong:
80 return locale.dateTimeFormat(QLocale::LongFormat);
81 case DateTimeFormatShort:
82 return locale.dateTimeFormat(QLocale::ShortFormat);
83 case DateTimeToStringLong:
84 return locale.toString(in.toDateTime(), QLocale::LongFormat);
85 case DateTimeToStringShort:
86 return locale.toString(in.toDateTime(), QLocale::ShortFormat);
87 case MeasurementSystem:
88 return locale.measurementSystem();
89 case PositiveSign:
90 return locale.positiveSign();
91 case AMText:
92 return locale.amText();
93 case PMText:
94 return locale.pmText();
95 case FirstDayOfWeek:
96 return locale.firstDayOfWeek();
97 case Weekdays:
98 return QVariant::fromValue(locale.weekdays());
99 case CurrencySymbol:
100 return locale.currencySymbol(QLocale::CurrencySymbolFormat(in.toUInt()));
101 case CurrencyToString:
102 return currencyToString(locale, in);
103 case Collation:
104 return locale.collation();
105 case UILanguages:
106 return m_preferredLanguages;
107 case StringToStandardQuotation:
108 return locale.quoteString(in.value<QStringView>());
109 case StringToAlternateQuotation:
110 return locale.quoteString(in.value<QStringView>(), QLocale::AlternateQuotation);
111 case ScriptId:
112 return locale.script();
113 case ListToSeparatedString:
114 return locale.createSeparatedList(in.value<QStringList>());
115 case LocaleChanged:
116 return QVariant();
117 case NativeLanguageName:
118 return locale.nativeLanguageName();
119 case NativeTerritoryName:
120 return locale.nativeTerritoryName();
121 case StandaloneMonthNameLong:
122 return locale.standaloneMonthName(in.toInt(), QLocale::LongFormat);
123 case StandaloneMonthNameShort:
124 return locale.standaloneMonthName(in.toInt(), QLocale::ShortFormat);
125 default:
126 break;
127 }
128
129 return QVariant();
130}
131
133{
134 return QLocale(m_systemLocaleId);
135}
136
137QT_END_NAMESPACE
QLocale fallbackLocale() const override
QOhosSystemLocale(const QString &systemLocaleId, const QStringList &preferredLanguages)
QVariant query(QueryType type, QVariant &&in=QVariant()) const override
Combined button and popup list for selecting options.
QString currencyToString(const QLocale &locale, const QVariant &in)