aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2011-12-20 11:02:10 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-20 06:37:53 +0100
commitf0c82e77aa2811c326c543468fc422c18ca98a47 (patch)
treed8fb0d1338fe7d4c741c506cd6c3f42314d9896a
parent2ac33932be979452e1d4fa3ec4e6b6a301e5f6e4 (diff)
Qt.locale() always returns the 'C' locale.
QLocale(QString()) does not return the default locale. If no locale is specified, use the QLocale() constructor. Change-Id: I76198b7ea66a6326483ec47ac36e080159ca459a Reviewed-by: Martin Jones <martin.jones@nokia.com>
-rw-r--r--src/declarative/qml/qdeclarativelocale.cpp5
-rw-r--r--tests/auto/declarative/qdeclarativelocale/tst_qdeclarativelocale.cpp12
2 files changed, 16 insertions, 1 deletions
diff --git a/src/declarative/qml/qdeclarativelocale.cpp b/src/declarative/qml/qdeclarativelocale.cpp
index ae57edb941..9f2116f8fd 100644
--- a/src/declarative/qml/qdeclarativelocale.cpp
+++ b/src/declarative/qml/qdeclarativelocale.cpp
@@ -811,7 +811,10 @@ v8::Handle<v8::Value> QDeclarativeLocale::locale(QV8Engine *v8engine, const QStr
QV8LocaleDataDeletable *d = localeV8Data(v8engine);
v8::Local<v8::Object> v8Value = d->constructor->NewInstance();
QV8LocaleDataResource *r = new QV8LocaleDataResource(v8engine);
- r->locale = QLocale(locale);
+ if (locale.isEmpty())
+ r->locale = QLocale();
+ else
+ r->locale = QLocale(locale);
v8Value->SetExternalResource(r);
return v8Value;
diff --git a/tests/auto/declarative/qdeclarativelocale/tst_qdeclarativelocale.cpp b/tests/auto/declarative/qdeclarativelocale/tst_qdeclarativelocale.cpp
index b2f35fd8b3..d49122c889 100644
--- a/tests/auto/declarative/qdeclarativelocale/tst_qdeclarativelocale.cpp
+++ b/tests/auto/declarative/qdeclarativelocale/tst_qdeclarativelocale.cpp
@@ -54,6 +54,8 @@ public:
tst_qdeclarativelocale() { }
private slots:
+ void defaultLocale();
+
void properties_data();
void properties();
void currencySymbol_data();
@@ -114,6 +116,16 @@ private:
QDeclarativeEngine engine;
};
+void tst_qdeclarativelocale::defaultLocale()
+{
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(TESTDATA("properties.qml")));
+
+ QObject *obj = c.create();
+ QVERIFY(obj);
+
+ QCOMPARE(obj->property("name").toString(), QLocale().name());
+}
+
#define LOCALE_PROP(type,prop) { #prop, QVariant(type(qlocale.prop())) }
void tst_qdeclarativelocale::addPropertyData(const QString &l)