diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-05-08 20:11:34 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2013-05-09 08:30:04 +0200 |
commit | 3075027384cc34b72f4d439b4be36fe12895b50b (patch) | |
tree | 48e3e98cce8405b94d2b06afc1b11fc73cf002ad /src/qml/qml/qqmllocale.cpp | |
parent | 85c68794c9ed02b0aabd8b31c89c603242155183 (diff) |
Ported over a few more locale functions
This code is becoming much simpler :)
Change-Id: Icd31bedd13f4a8fce145992b2a7706594ac809bf
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmllocale.cpp')
-rw-r--r-- | src/qml/qml/qqmllocale.cpp | 39 |
1 files changed, 15 insertions, 24 deletions
diff --git a/src/qml/qml/qqmllocale.cpp b/src/qml/qml/qqmllocale.cpp index 0bd150896b..345a0d7d39 100644 --- a/src/qml/qml/qqmllocale.cpp +++ b/src/qml/qml/qqmllocale.cpp @@ -72,6 +72,13 @@ public: static void initClass(QV4::ExecutionEngine *engine, const QV4::Value &obj); QV4::Value method_currencySymbol(QV4::SimpleCallContext *ctx); + QV4::Value method_dateTimeFormat(QV4::SimpleCallContext *ctx); + QV4::Value method_timeFormat(QV4::SimpleCallContext *ctx); + QV4::Value method_dateFormat(QV4::SimpleCallContext *ctx); + QV4::Value method_monthName(QV4::SimpleCallContext *ctx); + QV4::Value method_standaloneMonthName(QV4::SimpleCallContext *ctx); + QV4::Value method_dayName(QV4::SimpleCallContext *ctx); + QV4::Value method_standaloneDayName(QV4::SimpleCallContext *ctx); private: static void destroy(Managed *that) @@ -542,8 +549,7 @@ QV4::Value QQmlLocaleData::method_currencySymbol(QV4::SimpleCallContext *ctx) } #define LOCALE_FORMAT(FUNC) \ -static QV4::Value locale_ ##FUNC (QV4::SimpleCallContext *ctx) { \ - GET_LOCALE_DATA_RESOURCE(ctx->thisObject);\ +QV4::Value QQmlLocaleData::method_ ##FUNC (QV4::SimpleCallContext *ctx) { \ if (ctx->argumentCount > 1) \ V4THROW_ERROR("Locale: " #FUNC "(): Invalid arguments"); \ QLocale::FormatType format = QLocale::LongFormat;\ @@ -551,7 +557,7 @@ static QV4::Value locale_ ##FUNC (QV4::SimpleCallContext *ctx) { \ quint32 intFormat = ctx->arguments[0].toUInt32(); \ format = QLocale::FormatType(intFormat); \ } \ - return QV4::Value::fromString(ctx, r->locale. FUNC (format)); \ + return QV4::Value::fromString(ctx, locale. FUNC (format)); \ } LOCALE_FORMAT(dateTimeFormat) @@ -560,8 +566,7 @@ LOCALE_FORMAT(dateFormat) // +1 added to idx because JS is 0-based, whereas QLocale months begin at 1. #define LOCALE_FORMATTED_MONTHNAME(VARIABLE) \ -static QV4::Value locale_ ## VARIABLE (QV4::SimpleCallContext *ctx) {\ - GET_LOCALE_DATA_RESOURCE(ctx->thisObject); \ +QV4::Value QQmlLocaleData::method_ ## VARIABLE (QV4::SimpleCallContext *ctx) {\ if (ctx->argumentCount < 1 || ctx->argumentCount > 2) \ V4THROW_ERROR("Locale: " #VARIABLE "(): Invalid arguments"); \ QLocale::FormatType enumFormat = QLocale::LongFormat; \ @@ -573,20 +578,19 @@ static QV4::Value locale_ ## VARIABLE (QV4::SimpleCallContext *ctx) {\ if (ctx->arguments[1].isNumber()) { \ quint32 intFormat = ctx->arguments[1].toUInt32(); \ QLocale::FormatType format = QLocale::FormatType(intFormat); \ - name = r->locale. VARIABLE(idx, format); \ + name = locale. VARIABLE(idx, format); \ } else { \ V4THROW_ERROR("Locale: Invalid datetime format"); \ } \ } else { \ - name = r->locale. VARIABLE(idx, enumFormat); \ + name = locale. VARIABLE(idx, enumFormat); \ } \ return QV4::Value::fromString(ctx, name); \ } // 0 -> 7 as Qt::Sunday is 7, but Sunday is 0 in JS Date #define LOCALE_FORMATTED_DAYNAME(VARIABLE) \ -static QV4::Value locale_ ## VARIABLE (QV4::SimpleCallContext *ctx) {\ - GET_LOCALE_DATA_RESOURCE(ctx->thisObject); \ +QV4::Value QQmlLocaleData::method_ ## VARIABLE (QV4::SimpleCallContext *ctx) {\ if (ctx->argumentCount < 1 || ctx->argumentCount > 2) \ V4THROW_ERROR("Locale: " #VARIABLE "(): Invalid arguments"); \ QLocale::FormatType enumFormat = QLocale::LongFormat; \ @@ -599,20 +603,16 @@ static QV4::Value locale_ ## VARIABLE (QV4::SimpleCallContext *ctx) {\ if (ctx->arguments[1].isNumber()) { \ quint32 intFormat = ctx->arguments[1].toUInt32(); \ QLocale::FormatType format = QLocale::FormatType(intFormat); \ - name = r->locale. VARIABLE(idx, format); \ + name = locale. VARIABLE(idx, format); \ } else { \ V4THROW_ERROR("Locale: Invalid datetime format"); \ } \ } else { \ - name = r->locale. VARIABLE(idx, enumFormat); \ + name = locale. VARIABLE(idx, enumFormat); \ } \ return QV4::Value::fromString(ctx, name); \ } - -#define LOCALE_REGISTER_FORMATTED_NAME_FUNCTION(FT, VARIABLE, ENGINE) \ - FT->PrototypeTemplate()->Set(v8::String::New( #VARIABLE ), V8FUNCTION(locale_ ## VARIABLE, ENGINE)); - LOCALE_FORMATTED_MONTHNAME(monthName) LOCALE_FORMATTED_MONTHNAME(standaloneMonthName) LOCALE_FORMATTED_DAYNAME(dayName) @@ -669,15 +669,6 @@ QV8LocaleDataDeletable::QV8LocaleDataDeletable(QV8Engine *engine) LOCALE_REGISTER_STRING_ACCESSOR(ft, amText); LOCALE_REGISTER_STRING_ACCESSOR(ft, pmText); - ft->PrototypeTemplate()->Set(v8::String::New("dateTimeFormat"), V8FUNCTION(locale_dateTimeFormat, engine)); - ft->PrototypeTemplate()->Set(v8::String::New("dateFormat"), V8FUNCTION(locale_dateFormat, engine)); - ft->PrototypeTemplate()->Set(v8::String::New("timeFormat"), V8FUNCTION(locale_timeFormat, engine)); - - LOCALE_REGISTER_FORMATTED_NAME_FUNCTION(ft, monthName, engine); - LOCALE_REGISTER_FORMATTED_NAME_FUNCTION(ft, standaloneMonthName, engine); - LOCALE_REGISTER_FORMATTED_NAME_FUNCTION(ft, dayName, engine); - LOCALE_REGISTER_FORMATTED_NAME_FUNCTION(ft, standaloneDayName, engine); - ft->PrototypeTemplate()->SetAccessor(v8::String::New("firstDayOfWeek"), locale_get_firstDayOfWeek); ft->PrototypeTemplate()->SetAccessor(v8::String::New("weekDays"), locale_get_weekDays); ft->PrototypeTemplate()->SetAccessor(v8::String::New("measurementSystem"), locale_get_measurementSystem); |