Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qqmllocale_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 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
4#ifndef QQMLLOCALE_H
5#define QQMLLOCALE_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <qqml.h>
19
20#include <QtCore/qlocale.h>
21#include <QtCore/qobject.h>
22#include <private/qtqmlglobal_p.h>
23#include <private/qv4object_p.h>
24
26
28
29
31{
32public:
34
35private:
36 static QV4::ReturnedValue method_toLocaleString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
37 static QV4::ReturnedValue method_toLocaleTimeString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
38 static QV4::ReturnedValue method_toLocaleDateString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
39 static QV4::ReturnedValue method_fromLocaleString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
40 static QV4::ReturnedValue method_fromLocaleTimeString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
41 static QV4::ReturnedValue method_fromLocaleDateString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
42 static QV4::ReturnedValue method_timeZoneUpdated(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
43};
44
45
47{
48public:
50
51private:
52 static QV4::ReturnedValue method_toLocaleString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
53 static QV4::ReturnedValue method_fromLocaleString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
54 static QV4::ReturnedValue method_toLocaleCurrencyString(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
55};
56
57// This needs to be a struct so that we can derive from QLocale and inherit its enums. Then we can
58// use it as extension in QQmlLocaleEnums and expose all the enums in one go, without duplicating
59// any in different qmltypes files.
60struct Q_QML_EXPORT QQmlLocale : public QLocale
61{
64public:
65
66 // Qt defines Sunday as 7, but JS Date assigns Sunday 0
67 enum DayOfWeek {
68 Sunday = 0,
69 Monday = Qt::Monday,
70 Tuesday = Qt::Tuesday,
71 Wednesday = Qt::Wednesday,
72 Thursday = Qt::Thursday,
73 Friday = Qt::Friday,
74 Saturday = Qt::Saturday
75 };
76 Q_ENUM(DayOfWeek)
77
78 static QV4::ReturnedValue locale(QV4::ExecutionEngine *engine, const QString &localeName);
79 static void registerStringLocaleCompare(QV4::ExecutionEngine *engine);
80 static QV4::ReturnedValue method_localeCompare(
81 const QV4::FunctionObject *, const QV4::Value *thisObject,
82 const QV4::Value *argv, int argc);
83};
84
86{
89 QML_FOREIGN(QList<QQmlLocale::DayOfWeek>)
91};
92
94{
95 QLocale locale;
96
98 Q_PROPERTY(QLocale::MeasurementSystem measurementSystem READ measurementSystem CONSTANT)
99 Q_PROPERTY(Qt::LayoutDirection textDirection READ textDirection CONSTANT)
100 Q_PROPERTY(QList<QQmlLocale::DayOfWeek> weekDays READ weekDays CONSTANT)
102
105#if QT_DEPRECATED_SINCE(6, 6)
106 Q_PROPERTY(QString nativeCountryName READ nativeCountryName CONSTANT)
107#endif
118
120
126
127public:
129
135
140
145
150
152 {
153 // +1 added to idx because JS is 0-based, whereas QLocale months begin at 1.
154 return locale.monthName(index + 1, format);
155 }
156
159 {
160 // +1 added to idx because JS is 0-based, whereas QLocale months begin at 1.
161 return locale.standaloneMonthName(index + 1, format);
162 }
163
165 {
166 // 0 -> 7 as Qt::Sunday is 7, but Sunday is 0 in JS Date
167 return locale.dayName(index == 0 ? 7 : index, format);
168 }
169
172 {
173 // 0 -> 7 as Qt::Sunday is 7, but Sunday is 0 in JS Date
174 return locale.standaloneDayName(index == 0 ? 7 : index, format);
175 }
176
179 double bytes, int precision = 2,
180 QLocale::DataSizeFormats format = QLocale::DataSizeIecFormat) const
181 {
182 return locale.formattedDataSize(
184 }
185
187
188 // As a special (undocumented) case, when called with no arguments,
189 // just forward to QDebug. This makes it consistent with other types
190 // in JS that can be converted to a string via toString().
191 Q_INVOKABLE QString toString() const { return QDebug::toString(locale); }
192
193 Q_INVOKABLE QString toString(int i) const { return locale.toString(i); }
195 {
196 return QJSNumberCoercion::isInteger(f) ? toString(int(f)) : locale.toString(f);
197 }
198 Q_INVOKABLE QString toString(double f, const QString &format, int precision = 6) const
199 {
200 // Lacking a char type, we have to use QString here
201 return format.length() < 1
202 ? QString()
203 : locale.toString(f, format.at(0).toLatin1(), precision);
204 }
206 {
207 return locale.toString(dateTime, format);
208 }
214
218 QList<QQmlLocale::DayOfWeek> weekDays() const;
219 QStringList uiLanguages() const { return locale.uiLanguages(); }
220
221 QString name() const { return locale.name(); }
222 QString nativeLanguageName() const { return locale.nativeLanguageName(); }
223#if QT_DEPRECATED_SINCE(6, 6)
224 QString nativeCountryName() const
225 {
226 QT_IGNORE_DEPRECATIONS(return locale.nativeCountryName();)
227 }
228#endif
230 QString decimalPoint() const { return locale.decimalPoint(); }
231 QString groupSeparator() const { return locale.groupSeparator(); }
232 QString percent() const { return locale.percent(); }
233 QString zeroDigit() const { return locale.zeroDigit(); }
234 QString negativeSign() const { return locale.negativeSign(); }
235 QString positiveSign() const { return locale.positiveSign(); }
236 QString exponential() const { return locale.exponential(); }
237 QString amText() const { return locale.amText(); }
238 QString pmText() const { return locale.pmText(); }
239
240 QLocale::NumberOptions numberOptions() const { return locale.numberOptions(); }
241 void setNumberOptions(const QLocale::NumberOptions &numberOptions)
242 {
244 }
245};
246
248
249#endif
\inmodule QtCore\reentrant
Definition qdatetime.h:292
static constexpr bool isInteger(double d)
Definition qlist.h:76
QString decimalPoint() const
Definition qlocale.cpp:2655
QString dateTimeFormat(FormatType format=LongFormat) const
Definition qlocale.cpp:2396
QString zeroDigit() const
Definition qlocale.cpp:2710
QString dateFormat(FormatType format=LongFormat) const
Definition qlocale.cpp:2334
void setNumberOptions(NumberOptions options)
Definition qlocale.cpp:1177
QString negativeSign() const
Definition qlocale.cpp:2727
Qt::LayoutDirection textDirection() const
Definition qlocale.cpp:3344
QString dayName(int, FormatType format=LongFormat) const
Definition qlocale.cpp:2997
MeasurementSystem
Definition qlocale.h:867
CurrencySymbolFormat
Definition qlocale.h:896
@ CurrencySymbol
Definition qlocale.h:898
@ LongFormat
Definition qlocale.h:875
QString timeFormat(FormatType format=LongFormat) const
Definition qlocale.cpp:2365
QString groupSeparator() const
Definition qlocale.cpp:2674
QString monthName(int, FormatType format=LongFormat) const
Definition qlocale.cpp:2963
MeasurementSystem measurementSystem() const
Definition qlocale.cpp:3326
QString percent() const
Definition qlocale.cpp:2691
QString amText() const
Definition qlocale.cpp:3439
QString nativeTerritoryName() const
Definition qlocale.cpp:4907
@ DataSizeIecFormat
Definition qlocale.h:909
QString exponential() const
Definition qlocale.cpp:2762
QString pmText() const
Definition qlocale.cpp:3459
QString formattedDataSize(qint64 bytes, int precision=2, DataSizeFormats format=DataSizeIecFormat) const
Definition qlocale.cpp:4695
QString positiveSign() const
Definition qlocale.cpp:2744
QStringList uiLanguages(TagSeparator separator=TagSeparator::Dash) const
List of locale names for use in selecting translations.
Definition qlocale.cpp:4748
QString toString(qlonglong i) const
Returns a localized string representation of i.
Definition qlocale.cpp:2052
QString standaloneMonthName(int, FormatType format=LongFormat) const
Definition qlocale.cpp:2979
NumberOptions numberOptions() const
Definition qlocale.cpp:1193
QString name(TagSeparator separator=TagSeparator::Underscore) const
The short name of this locale.
Definition qlocale.cpp:1412
QString nativeLanguageName() const
Definition qlocale.cpp:4887
QString standaloneDayName(int, FormatType format=LongFormat) const
Definition qlocale.cpp:3014
QString currencySymbol(CurrencySymbolFormat=CurrencySymbol) const
Definition qlocale.cpp:4548
static void registerExtension(QV4::ExecutionEngine *engine)
Q_INVOKABLE QString formattedDataSize(double bytes, int precision=2, QLocale::DataSizeFormats format=QLocale::DataSizeIecFormat) const
QList< QQmlLocale::DayOfWeek > weekDays
Q_INVOKABLE void formattedDataSize(QQmlV4FunctionPtr args) const
QString nativeLanguageName() const
Q_INVOKABLE QString standaloneMonthName(int index, QLocale::FormatType format=QLocale::LongFormat) const
void setNumberOptions(const QLocale::NumberOptions &numberOptions)
QLocale::NumberOptions numberOptions
QString decimalPoint() const
Q_INVOKABLE QString timeFormat(QLocale::FormatType format=QLocale::LongFormat) const
QString amText() const
Q_INVOKABLE QString dateTimeFormat(QLocale::FormatType format=QLocale::LongFormat) const
QString name() const
QLocale::NumberOptions numberOptions() const
Q_INVOKABLE QString currencySymbol(QLocale::CurrencySymbolFormat format=QLocale::CurrencySymbol) const
Q_INVOKABLE QString standaloneDayName(int index, QLocale::FormatType format=QLocale::LongFormat) const
Qt::LayoutDirection textDirection
Q_INVOKABLE QString toString(double f) const
Q_INVOKABLE QString monthName(int index, QLocale::FormatType format=QLocale::LongFormat) const
QString nativeTerritoryName() const
QString negativeSign() const
QStringList uiLanguages() const
Qt::LayoutDirection textDirection() const
QLocale::MeasurementSystem measurementSystem() const
QString zeroDigit() const
QString percent() const
Q_INVOKABLE QString toString(double f, const QString &format, int precision=6) const
QString exponential() const
Q_INVOKABLE QString toString(const QDateTime &dateTime, QLocale::FormatType format=QLocale::LongFormat) const
QLocale::MeasurementSystem measurementSystem
QStringList uiLanguages
QString pmText() const
QString positiveSign() const
Q_INVOKABLE QString toString() const
Q_INVOKABLE QString toString(const QDateTime &dateTime, const QString &format) const
QString groupSeparator() const
Q_INVOKABLE QString toString(int i) const
Q_INVOKABLE QString dayName(int index, QLocale::FormatType format=QLocale::LongFormat) const
Q_INVOKABLE QString dateFormat(QLocale::FormatType format=QLocale::LongFormat) const
QQmlLocale::DayOfWeek firstDayOfWeek
static void registerExtension(QV4::ExecutionEngine *engine)
\inmodule QtCore
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
qsizetype length() const noexcept
Returns the number of characters in this string.
Definition qstring.h:191
Combined button and popup list for selecting options.
quint64 ReturnedValue
Definition qcompare.h:63
LayoutDirection
@ Wednesday
@ Thursday
@ Friday
@ Tuesday
@ Monday
@ Saturday
#define QT_IGNORE_DEPRECATIONS(statement)
GLuint index
[2]
GLfloat GLfloat f
GLuint name
GLint GLsizei GLsizei GLenum format
GLenum GLint GLint * precision
#define QML_ANONYMOUS
#define QML_SEQUENTIAL_CONTAINER(VALUE_TYPE)
#define QML_EXTENDED(EXTENDED_TYPE)
#define QML_FOREIGN(FOREIGN_TYPE)
#define QML_CONSTRUCTIBLE_VALUE
#define QT_REQUIRE_CONFIG(feature)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_INVOKABLE
#define Q_GADGET
long long qint64
Definition qtypes.h:60
QDateTime dateTime
[12]
QJSValueList args
QJSEngine engine
[0]
double toInteger() const
Definition qv4value_p.h:394