diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2020-01-22 13:37:48 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2020-01-23 15:56:40 +0100 |
commit | 020a6e67766595351bcf911e965b26952a7c81b8 (patch) | |
tree | 6cbb9340cb28f18efa98c9395b782cd13b81f101 /tests/auto/qml/qjsengine | |
parent | aca7b33368655949d238a0cdfc0073b6b8532872 (diff) |
Add Qt.uiLanguage and QJSEngine::uiLanguage properties
[ChangeLog][QtQml] Added Qt.uiLanguage and QJSEngine::uiLanguage properties
These properties mirror the same value in QML and C++ and can be used
freely. They also provide API symmetry to Qt for MCUs.
QQmlApplicationEngine binds to this property and applies translations
accordingly by constructing a QLocale with the value and using
QTranslator::load(locale).
Change-Id: Id87d6ee64679b07ff3cb47844594e8eeebd8c8b6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Christian Kamm <mail@ckamm.de>
Diffstat (limited to 'tests/auto/qml/qjsengine')
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index 28efb519ee..7b59087a72 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -264,6 +264,8 @@ private slots: void printCircularArray(); void typedArraySet(); + void uiLanguage(); + public: Q_INVOKABLE QJSValue throwingCppMethod1(); Q_INVOKABLE void throwingCppMethod2(); @@ -5143,6 +5145,33 @@ void tst_QJSEngine::typedArraySet() } } +void tst_QJSEngine::uiLanguage() +{ + { + QJSEngine engine; + + QVERIFY(!engine.globalObject().hasProperty("Qt")); + + engine.installExtensions(QJSEngine::TranslationExtension); + QVERIFY(engine.globalObject().hasProperty("Qt")); + QVERIFY(engine.globalObject().property("Qt").hasProperty("uiLanguage")); + + engine.setUiLanguage("Blah"); + QCOMPARE(engine.globalObject().property("Qt").property("uiLanguage").toString(), "Blah"); + + engine.evaluate("Qt.uiLanguage = \"another\""); + QCOMPARE(engine.globalObject().property("Qt").property("uiLanguage").toString(), "another"); + } + + { + QQmlEngine qmlEngine; + QVERIFY(qmlEngine.globalObject().hasProperty("Qt")); + QVERIFY(qmlEngine.globalObject().property("Qt").hasProperty("uiLanguage")); + qmlEngine.setUiLanguage("Blah"); + QCOMPARE(qmlEngine.globalObject().property("Qt").property("uiLanguage").toString(), "Blah"); + } +} + QTEST_MAIN(tst_QJSEngine) #include "tst_qjsengine.moc" |