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
58namespace QQmlLocale
59{
60 Q_NAMESPACE_EXPORT(Q_QML_EXPORT)
61 QML_NAMED_ELEMENT(Locale)
64
65 // Qt defines Sunday as 7, but JS Date assigns Sunday 0
76
77 Q_QML_EXPORT QV4::ReturnedValue locale(QV4::ExecutionEngine *engine, const QString &localeName);
79 Q_QML_EXPORT QV4::ReturnedValue method_localeCompare(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc);
80};
81
83{
86 QML_FOREIGN(QList<QQmlLocale::DayOfWeek>)
88};
89
91{
92 QLocale locale;
93
95 Q_PROPERTY(QLocale::MeasurementSystem measurementSystem READ measurementSystem CONSTANT)
96 Q_PROPERTY(Qt::LayoutDirection textDirection READ textDirection CONSTANT)
97 Q_PROPERTY(QList<QQmlLocale::DayOfWeek> weekDays READ weekDays CONSTANT)
99
102#if QT_DEPRECATED_SINCE(6, 6)
103 Q_PROPERTY(QString nativeCountryName READ nativeCountryName CONSTANT)
104#endif
115
117
123
124public:
126
129 {
130 return locale.currencySymbol(format);
131 }
132
134 {
135 return locale.dateTimeFormat(format);
136 }
137
139 {
140 return locale.timeFormat(format);
141 }
142
144 {
145 return locale.dateFormat(format);
146 }
147
149 {
150 // +1 added to idx because JS is 0-based, whereas QLocale months begin at 1.
151 return locale.monthName(index + 1, format);
152 }
153
156 {
157 // +1 added to idx because JS is 0-based, whereas QLocale months begin at 1.
158 return locale.standaloneMonthName(index + 1, format);
159 }
160
162 {
163 // 0 -> 7 as Qt::Sunday is 7, but Sunday is 0 in JS Date
164 return locale.dayName(index == 0 ? 7 : index, format);
165 }
166
169 {
170 // 0 -> 7 as Qt::Sunday is 7, but Sunday is 0 in JS Date
171 return locale.standaloneDayName(index == 0 ? 7 : index, format);
172 }
173
176 double bytes, int precision = 2,
177 QLocale::DataSizeFormats format = QLocale::DataSizeIecFormat) const
178 {
179 return locale.formattedDataSize(
181 }
182
184
185 // As a special (undocumented) case, when called with no arguments,
186 // just forward to QDebug. This makes it consistent with other types
187 // in JS that can be converted to a string via toString().
188 Q_INVOKABLE QString toString() const { return QDebug::toString(locale); }
189
190 Q_INVOKABLE QString toString(int i) const { return locale.toString(i); }
192 {
193 return QJSNumberCoercion::isInteger(f) ? toString(int(f)) : locale.toString(f);
194 }
195 Q_INVOKABLE QString toString(double f, const QString &format, int precision = 6) const
196 {
197 // Lacking a char type, we have to use QString here
198 return format.length() < 1
199 ? QString()
200 : locale.toString(f, format.at(0).toLatin1(), precision);
201 }
203 {
204 return locale.toString(dateTime, format);
205 }
208 {
209 return locale.toString(dateTime, format);
210 }
211
213 QLocale::MeasurementSystem measurementSystem() const { return locale.measurementSystem(); }
214 Qt::LayoutDirection textDirection() const { return locale.textDirection(); }
215 QList<QQmlLocale::DayOfWeek> weekDays() const;
216 QStringList uiLanguages() const { return locale.uiLanguages(); }
217
218 QString name() const { return locale.name(); }
219 QString nativeLanguageName() const { return locale.nativeLanguageName(); }
220#if QT_DEPRECATED_SINCE(6, 6)
221 QString nativeCountryName() const
222 {
223 QT_IGNORE_DEPRECATIONS(return locale.nativeCountryName();)
224 }
225#endif
226 QString nativeTerritoryName() const { return locale.nativeTerritoryName(); }
227 QString decimalPoint() const { return locale.decimalPoint(); }
228 QString groupSeparator() const { return locale.groupSeparator(); }
229 QString percent() const { return locale.percent(); }
230 QString zeroDigit() const { return locale.zeroDigit(); }
231 QString negativeSign() const { return locale.negativeSign(); }
232 QString positiveSign() const { return locale.positiveSign(); }
233 QString exponential() const { return locale.exponential(); }
234 QString amText() const { return locale.amText(); }
235 QString pmText() const { return locale.pmText(); }
236
237 QLocale::NumberOptions numberOptions() const { return locale.numberOptions(); }
238 void setNumberOptions(const QLocale::NumberOptions &numberOptions)
239 {
240 locale.setNumberOptions(numberOptions);
241 }
242};
243
245
246#endif
\inmodule QtCore\reentrant
Definition qdatetime.h:283
static constexpr bool isInteger(double d)
Definition qlist.h:75
MeasurementSystem
Definition qlocale.h:867
CurrencySymbolFormat
Definition qlocale.h:896
@ CurrencySymbol
Definition qlocale.h:898
@ LongFormat
Definition qlocale.h:875
@ DataSizeIecFormat
Definition qlocale.h:909
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
Q_QML_EXPORT void registerStringLocaleCompare(QV4::ExecutionEngine *engine)
Q_QML_EXPORT QV4::ReturnedValue method_localeCompare(const QV4::FunctionObject *, const QV4::Value *thisObject, const QV4::Value *argv, int argc)
Q_QML_EXPORT QV4::ReturnedValue locale(QV4::ExecutionEngine *engine, const QString &localeName)
Provides locale specific properties and formatted data.
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_NAMESPACE_EXTENDED(EXTENDED_NAMESPACE)
#define QML_NAMED_ELEMENT(NAME)
#define QML_FOREIGN(FOREIGN_TYPE)
#define QML_CONSTRUCTIBLE_VALUE
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define QT_REQUIRE_CONFIG(feature)
#define Q_PROPERTY(...)
#define Q_INVOKABLE
#define Q_GADGET
#define Q_ENUM_NS(x)
#define Q_NAMESPACE_EXPORT(...)
long long qint64
Definition qtypes.h:60
QDateTime dateTime
[12]
QJSValueList args
QJSEngine engine
[0]
double toInteger() const
Definition qv4value_p.h:394