diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2020-03-24 11:21:25 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2020-04-02 22:23:04 +0200 |
commit | e40098c5303e7af4b12c64093b120405c63fdf8d (patch) | |
tree | 9636894ed820567731f9b4dd41870392ce052a70 /tests/auto | |
parent | 63bf6ac4c483cc64b48c410c6e1afb404f2bcbd1 (diff) |
Add support for translation bindings on QProperty based properties
Change-Id: I439653123cdc96df97a1801664655c9d28a8b9b5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto')
6 files changed, 21 insertions, 2 deletions
diff --git a/tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt b/tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt index f62dfd9a3e..576f836cf9 100644 --- a/tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt +++ b/tests/auto/qml/qqmltranslation/.prev_CMakeLists.txt @@ -21,6 +21,7 @@ qt_add_test(tst_qqmltranslation Qt::Gui Qt::GuiPrivate Qt::QmlPrivate + Qt::Quick TESTDATA ${test_data} ) diff --git a/tests/auto/qml/qqmltranslation/CMakeLists.txt b/tests/auto/qml/qqmltranslation/CMakeLists.txt index 8e280cc1de..8b665dd1b5 100644 --- a/tests/auto/qml/qqmltranslation/CMakeLists.txt +++ b/tests/auto/qml/qqmltranslation/CMakeLists.txt @@ -21,6 +21,7 @@ qt_add_test(tst_qqmltranslation Qt::Gui Qt::GuiPrivate Qt::QmlPrivate + Qt::Quick TESTDATA ${test_data} ) diff --git a/tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml b/tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml index 294fff3284..0d994761c4 100644 --- a/tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml +++ b/tests/auto/qml/qqmltranslation/data/TranslationChangeBase.qml @@ -1,5 +1,6 @@ import QtQuick 2.0 +import Test 1.0 -Item { +CppTranslationBase { property string baseProperty: qsTr("translate me"); } diff --git a/tests/auto/qml/qqmltranslation/data/translationChange.qml b/tests/auto/qml/qqmltranslation/data/translationChange.qml index ae3231935c..54ba82018d 100644 --- a/tests/auto/qml/qqmltranslation/data/translationChange.qml +++ b/tests/auto/qml/qqmltranslation/data/translationChange.qml @@ -18,6 +18,7 @@ TranslationChangeBase { property string text2: weDoTranslations() property string text3 property string fromListModel: listModel.get(0).text + qProperty: qsTr("translate me") states: [ State { diff --git a/tests/auto/qml/qqmltranslation/qqmltranslation.pro b/tests/auto/qml/qqmltranslation/qqmltranslation.pro index ac329a204b..266ad51a79 100644 --- a/tests/auto/qml/qqmltranslation/qqmltranslation.pro +++ b/tests/auto/qml/qqmltranslation/qqmltranslation.pro @@ -9,4 +9,4 @@ include (../../shared/util.pri) TESTDATA = data/* -QT += core-private gui-private qml-private testlib +QT += core-private gui-private qml-private testlib quick diff --git a/tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp b/tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp index a75a00bd01..bb5a5bf7e3 100644 --- a/tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp +++ b/tests/auto/qml/qqmltranslation/tst_qqmltranslation.cpp @@ -31,6 +31,7 @@ #include <QQmlComponent> #include <QTranslator> #include <QQmlContext> +#include <QQuickItem> #include <private/qqmlengine_p.h> #include <private/qqmltypedata_p.h> #include "../../shared/util.h" @@ -165,6 +166,15 @@ void tst_qqmltranslation::idTranslation() delete object; } +class CppTranslationBase : public QQuickItem +{ + Q_OBJECT + QML_ELEMENT + Q_PROPERTY(QString qProperty) + + QProperty<QString> qProperty; +}; + class DummyTranslator : public QTranslator { Q_OBJECT @@ -193,6 +203,8 @@ void tst_qqmltranslation::translationChange() { QQmlEngine engine; + qmlRegisterTypesAndRevisions<CppTranslationBase>("Test", 1); + QQmlComponent component(&engine, testFileUrl("translationChange.qml")); QScopedPointer<QObject> object(component.create()); QVERIFY(!object.isNull()); @@ -202,18 +214,21 @@ void tst_qqmltranslation::translationChange() QCOMPARE(object->property("text2").toString(), QString::fromUtf8("translate me")); QCOMPARE(object->property("text3").toString(), QString::fromUtf8("translate me")); QCOMPARE(object->property("fromListModel").toString(), QString::fromUtf8("translate me")); + QCOMPARE(object->property("qProperty").toString(), QString::fromUtf8("translate me")); DummyTranslator translator; QCoreApplication::installTranslator(&translator); QEvent ev(QEvent::LanguageChange); QCoreApplication::sendEvent(&engine, &ev); + engine.setUiLanguage("xxx"); QCOMPARE(object->property("baseProperty").toString(), QString::fromUtf8("do not translate")); QCOMPARE(object->property("text1").toString(), QString::fromUtf8("xxx")); QCOMPARE(object->property("text2").toString(), QString::fromUtf8("xxx")); QCOMPARE(object->property("text3").toString(), QString::fromUtf8("xxx")); QCOMPARE(object->property("fromListModel").toString(), QString::fromUtf8("xxx")); + QCOMPARE(object->property("qProperty").toString(), QString::fromUtf8("xxx")); QCoreApplication::removeTranslator(&translator); } |