aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-04-29 16:56:17 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2014-07-22 13:49:06 +0200
commit07e27d030fb181bd9d9c38de6ee08ad15a9171fd (patch)
tree7dc884e719b7438bb0977e25f7a59c075324ca2d /src/qml/qml
parentb6b88a63becc773a955b63021b32144b7b100ac6 (diff)
Convert qml locale object to new data layout
Change-Id: I1c02498102d89be1127fb6bbf0b38e21c48bed8b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/qml')
-rw-r--r--src/qml/qml/qqmllocale.cpp44
-rw-r--r--src/qml/qml/qqmllocale_p.h12
-rw-r--r--src/qml/qml/v8/qv8engine.cpp2
3 files changed, 32 insertions, 26 deletions
diff --git a/src/qml/qml/qqmllocale.cpp b/src/qml/qml/qqmllocale.cpp
index 178280b27c..395a510b03 100644
--- a/src/qml/qml/qqmllocale.cpp
+++ b/src/qml/qml/qqmllocale.cpp
@@ -109,16 +109,16 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleString(QV4::CallContext *ct
if (ctx->callData->argc == 2) {
if (ctx->callData->args[1].isString()) {
QString format = ctx->callData->args[1].stringValue()->toQString();
- formattedDt = r->locale.toString(dt, format);
+ formattedDt = r->d()->locale.toString(dt, format);
} else if (ctx->callData->args[1].isNumber()) {
quint32 intFormat = ctx->callData->args[1].toNumber();
QLocale::FormatType format = QLocale::FormatType(intFormat);
- formattedDt = r->locale.toString(dt, format);
+ formattedDt = r->d()->locale.toString(dt, format);
} else {
V4THROW_ERROR("Locale: Date.toLocaleString(): Invalid datetime format");
}
} else {
- formattedDt = r->locale.toString(dt, enumFormat);
+ formattedDt = r->d()->locale.toString(dt, enumFormat);
}
return ctx->engine->newString(formattedDt)->asReturnedValue();
@@ -154,16 +154,16 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleTimeString(QV4::CallContext
if (ctx->callData->argc == 2) {
if (ctx->callData->args[1].isString()) {
QString format = ctx->callData->args[1].stringValue()->toQString();
- formattedTime = r->locale.toString(time, format);
+ formattedTime = r->d()->locale.toString(time, format);
} else if (ctx->callData->args[1].isNumber()) {
quint32 intFormat = ctx->callData->args[1].toNumber();
QLocale::FormatType format = QLocale::FormatType(intFormat);
- formattedTime = r->locale.toString(time, format);
+ formattedTime = r->d()->locale.toString(time, format);
} else {
V4THROW_ERROR("Locale: Date.toLocaleTimeString(): Invalid time format");
}
} else {
- formattedTime = r->locale.toString(time, enumFormat);
+ formattedTime = r->d()->locale.toString(time, enumFormat);
}
return ctx->engine->newString(formattedTime)->asReturnedValue();
@@ -199,16 +199,16 @@ QV4::ReturnedValue QQmlDateExtension::method_toLocaleDateString(QV4::CallContext
if (ctx->callData->argc == 2) {
if (ctx->callData->args[1].isString()) {
QString format = ctx->callData->args[1].stringValue()->toQString();
- formattedDate = r->locale.toString(date, format);
+ formattedDate = r->d()->locale.toString(date, format);
} else if (ctx->callData->args[1].isNumber()) {
quint32 intFormat = ctx->callData->args[1].toNumber();
QLocale::FormatType format = QLocale::FormatType(intFormat);
- formattedDate = r->locale.toString(date, format);
+ formattedDate = r->d()->locale.toString(date, format);
} else {
V4THROW_ERROR("Locale: Date.loLocaleDateString(): Invalid date format");
}
} else {
- formattedDate = r->locale.toString(date, enumFormat);
+ formattedDate = r->d()->locale.toString(date, enumFormat);
}
return ctx->engine->newString(formattedDate)->asReturnedValue();
@@ -237,16 +237,16 @@ QV4::ReturnedValue QQmlDateExtension::method_fromLocaleString(QV4::CallContext *
if (ctx->callData->argc == 3) {
if (ctx->callData->args[2].isString()) {
QString format = ctx->callData->args[2].stringValue()->toQString();
- dt = r->locale.toDateTime(dateString, format);
+ dt = r->d()->locale.toDateTime(dateString, format);
} else if (ctx->callData->args[2].isNumber()) {
quint32 intFormat = ctx->callData->args[2].toNumber();
QLocale::FormatType format = QLocale::FormatType(intFormat);
- dt = r->locale.toDateTime(dateString, format);
+ dt = r->d()->locale.toDateTime(dateString, format);
} else {
V4THROW_ERROR("Locale: Date.fromLocaleString(): Invalid datetime format");
}
} else {
- dt = r->locale.toDateTime(dateString, enumFormat);
+ dt = r->d()->locale.toDateTime(dateString, enumFormat);
}
return QV4::Encode(engine->newDateObject(dt));
@@ -278,16 +278,16 @@ QV4::ReturnedValue QQmlDateExtension::method_fromLocaleTimeString(QV4::CallConte
if (ctx->callData->argc == 3) {
if (ctx->callData->args[2].isString()) {
QString format = ctx->callData->args[2].stringValue()->toQString();
- tm = r->locale.toTime(dateString, format);
+ tm = r->d()->locale.toTime(dateString, format);
} else if (ctx->callData->args[2].isNumber()) {
quint32 intFormat = ctx->callData->args[2].toNumber();
QLocale::FormatType format = QLocale::FormatType(intFormat);
- tm = r->locale.toTime(dateString, format);
+ tm = r->d()->locale.toTime(dateString, format);
} else {
V4THROW_ERROR("Locale: Date.fromLocaleTimeString(): Invalid datetime format");
}
} else {
- tm = r->locale.toTime(dateString, enumFormat);
+ tm = r->d()->locale.toTime(dateString, enumFormat);
}
QDateTime dt;
@@ -323,16 +323,16 @@ QV4::ReturnedValue QQmlDateExtension::method_fromLocaleDateString(QV4::CallConte
if (ctx->callData->argc == 3) {
if (ctx->callData->args[2].isString()) {
QString format = ctx->callData->args[2].stringValue()->toQString();
- dt = r->locale.toDate(dateString, format);
+ dt = r->d()->locale.toDate(dateString, format);
} else if (ctx->callData->args[2].isNumber()) {
quint32 intFormat = ctx->callData->args[2].toNumber();
QLocale::FormatType format = QLocale::FormatType(intFormat);
- dt = r->locale.toDate(dateString, format);
+ dt = r->d()->locale.toDate(dateString, format);
} else {
V4THROW_ERROR("Locale: Date.fromLocaleDateString(): Invalid datetime format");
}
} else {
- dt = r->locale.toDate(dateString, enumFormat);
+ dt = r->d()->locale.toDate(dateString, enumFormat);
}
return QV4::Encode(engine->newDateObject(QDateTime(dt)));
@@ -393,7 +393,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleString(QV4::CallContext *
prec = ctx->callData->args[2].toInt32();
}
- return ctx->engine->newString(r->locale.toString(number, (char)format, prec))->asReturnedValue();
+ return ctx->engine->newString(r->d()->locale.toString(number, (char)format, prec))->asReturnedValue();
}
QV4::ReturnedValue QQmlNumberExtension::method_toLocaleCurrencyString(QV4::CallContext *ctx)
@@ -423,7 +423,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_toLocaleCurrencyString(QV4::CallC
symbol = ctx->callData->args[1].toQStringNoThrow();
}
- return ctx->engine->newString(r->locale.toCurrencyString(number, symbol))->asReturnedValue();
+ return ctx->engine->newString(r->d()->locale.toCurrencyString(number, symbol))->asReturnedValue();
}
QV4::ReturnedValue QQmlNumberExtension::method_fromLocaleString(QV4::CallContext *ctx)
@@ -441,7 +441,7 @@ QV4::ReturnedValue QQmlNumberExtension::method_fromLocaleString(QV4::CallContext
V4THROW_ERROR("Locale: Number.fromLocaleString(): Invalid arguments");
GET_LOCALE_DATA_RESOURCE(ctx->callData->args[0]);
- locale = r->locale;
+ locale = r->d()->locale;
numberIdx = 1;
}
@@ -815,7 +815,7 @@ QV4::ReturnedValue QQmlLocale::wrap(QV8Engine *engine, const QLocale &locale)
QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
QV4::Scope scope(v4);
QV4::Scoped<QQmlLocaleData> wrapper(scope, new (v4->memoryManager) QQmlLocaleData(v4));
- wrapper->locale = locale;
+ wrapper->d()->locale = locale;
QV4::ScopedObject p(scope, d->prototype.value());
wrapper->setPrototype(p.getPointer());
return wrapper.asReturnedValue();
diff --git a/src/qml/qml/qqmllocale_p.h b/src/qml/qml/qqmllocale_p.h
index cafe448313..5e095a7e06 100644
--- a/src/qml/qml/qqmllocale_p.h
+++ b/src/qml/qml/qqmllocale_p.h
@@ -131,7 +131,14 @@ private:
class QQmlLocaleData : public QV4::Object
{
- V4_OBJECT
+ struct Data : QV4::Object::Data {
+ QLocale locale;
+ };
+ struct {
+ QLocale locale;
+ } __data;
+
+ V4_OBJECT_NEW
public:
QQmlLocaleData(QV4::ExecutionEngine *engine)
: QV4::Object(engine)
@@ -139,7 +146,6 @@ public:
setVTable(staticVTable());
}
- QLocale locale;
static QLocale *getThisLocale(QV4::CallContext *ctx) {
QQmlLocaleData *thisObject = ctx->callData->thisObject.asObject()->as<QQmlLocaleData>();
@@ -147,7 +153,7 @@ public:
ctx->throwTypeError();
return 0;
}
- return &thisObject->locale;
+ return &thisObject->d()->locale;
}
static QV4::ReturnedValue method_currencySymbol(QV4::CallContext *ctx);
diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp
index 178eeb2c64..2c5d8191aa 100644
--- a/src/qml/qml/v8/qv8engine.cpp
+++ b/src/qml/qml/v8/qv8engine.cpp
@@ -398,7 +398,7 @@ QVariant QV8Engine::toBasicVariant(const QV4::ValueRef value)
if (value->isString())
return value->stringValue()->toQString();
if (QQmlLocaleData *ld = value->as<QQmlLocaleData>())
- return ld->locale;
+ return ld->d()->locale;
if (QV4::DateObject *d = value->asDateObject())
return d->toQDateTime();
// NOTE: since we convert QTime to JS Date, round trip will change the variant type (to QDateTime)!