diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-12-21 16:34:36 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-21 18:42:48 +0100 |
commit | b6c8497cdf070c8404a1f3784c4ee6df191bd546 (patch) | |
tree | 029a5ce39adbad2c9eb1213e57d38fecdd9e6041 /tests | |
parent | 8249c72213bc7d212c05aa086b3145a5742706a3 (diff) |
Detect and optimize qsTr() and qsTrId() bindings
As these two are frequently used with constants, we can detect them in
the compiler, and run the appropriate C++ functions directly in the VME.
This saves pointlessly creating and running bindings.
Change-Id: I148a150400c13fda7955949453405202f18b1a6b
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'tests')
4 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp index ebe9253bae..f300fe07cd 100644 --- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp +++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp @@ -450,6 +450,24 @@ void tst_qdeclarativeinstruction::dump() data->addInstruction(i); } + { + QDeclarativeCompiledData::Instruction::StoreTrString i; + i.propertyIndex = 99; + i.context = 3; + i.text = 14; + i.comment = 14; + i.n = 2; + data->addInstruction(i); + } + + { + QDeclarativeCompiledData::Instruction::StoreTrIdString i; + i.propertyIndex = 78; + i.text = 7; + i.n = -1; + data->addInstruction(i); + } + QStringList expect; expect << "Index\tOperation\t\tData1\tData2\tData3\tComments" @@ -505,6 +523,8 @@ void tst_qdeclarativeinstruction::dump() << "48\t\tSTORE_VARIANT_INTEGER\t\t32\t11" << "49\t\tSTORE_VARIANT_DOUBLE\t\t19\t33.7" << "50\t\tDONE" + << "51\t\tSTORE_TR_STRING\t99\t3\t14\t14\t2" + << "52\t\tSTORE_TRID_STRING\t78\t7\t-1" << "-------------------------------------------------------------------------------"; messages = QStringList(); diff --git a/tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml b/tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml index 4a5498281a..b128a1e578 100644 --- a/tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml +++ b/tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml @@ -4,4 +4,5 @@ QtObject { property string _idTranslation2: QT_TRID_NOOP("qtn_hello_world") property string idTranslation: qsTrId("qtn_hello_world") property string idTranslation2: qsTrId(_idTranslation2) + property string idTranslation3: if (1) qsTrId("qtn_hello_world") } diff --git a/tests/auto/declarative/qdeclarativetranslation/data/translation.qml b/tests/auto/declarative/qdeclarativetranslation/data/translation.qml index 89db1d2262..8435bedb28 100644 --- a/tests/auto/declarative/qdeclarativetranslation/data/translation.qml +++ b/tests/auto/declarative/qdeclarativetranslation/data/translation.qml @@ -3,9 +3,11 @@ import QtQuick 2.0 QtObject { property string basic: qsTr("hello") property string basic2: qsTranslate("CustomContext", "goodbye") + property string basic3: if (1) qsTr("hello") property string disambiguation: qsTr("hi", "informal 'hello'") property string disambiguation2: qsTranslate("CustomContext", "see ya", "informal 'goodbye'") + property string disambiguation3: if (1) qsTr("hi", "informal 'hello'") property string _noop: QT_TR_NOOP("hello") property string _noop2: QT_TRANSLATE_NOOP("CustomContext", "goodbye") @@ -13,5 +15,7 @@ QtObject { property string noop2: qsTranslate("CustomContext", _noop2) property string singular: qsTr("%n duck(s)", "", 1) + property string singular2: if (1) qsTr("%n duck(s)", "", 1) property string plural: qsTr("%n duck(s)", "", 2) + property string plural2: if (1) qsTr("%n duck(s)", "", 2) } diff --git a/tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp b/tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp index 12079b1432..08c55dc5f2 100644 --- a/tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp +++ b/tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp @@ -70,12 +70,16 @@ void tst_qdeclarativetranslation::translation() QCOMPARE(object->property("basic").toString(), QLatin1String("bonjour")); QCOMPARE(object->property("basic2").toString(), QLatin1String("au revoir")); + QCOMPARE(object->property("basic3").toString(), QLatin1String("bonjour")); QCOMPARE(object->property("disambiguation").toString(), QLatin1String("salut")); QCOMPARE(object->property("disambiguation2").toString(), QString::fromUtf8("\xc3\xa0 plus tard")); + QCOMPARE(object->property("disambiguation3").toString(), QLatin1String("salut")); QCOMPARE(object->property("noop").toString(), QLatin1String("bonjour")); QCOMPARE(object->property("noop2").toString(), QLatin1String("au revoir")); QCOMPARE(object->property("singular").toString(), QLatin1String("1 canard")); + QCOMPARE(object->property("singular2").toString(), QLatin1String("1 canard")); QCOMPARE(object->property("plural").toString(), QLatin1String("2 canards")); + QCOMPARE(object->property("plural2").toString(), QLatin1String("2 canards")); QCoreApplication::removeTranslator(&translator); delete object; @@ -94,6 +98,7 @@ void tst_qdeclarativetranslation::idTranslation() QCOMPARE(object->property("idTranslation").toString(), QLatin1String("bonjour tout le monde")); QCOMPARE(object->property("idTranslation2").toString(), QLatin1String("bonjour tout le monde")); + QCOMPARE(object->property("idTranslation3").toString(), QLatin1String("bonjour tout le monde")); QCoreApplication::removeTranslator(&translator); delete object; @@ -112,12 +117,16 @@ void tst_qdeclarativetranslation::translationInQrc() QCOMPARE(object->property("basic").toString(), QLatin1String("bonjour")); QCOMPARE(object->property("basic2").toString(), QLatin1String("au revoir")); + QCOMPARE(object->property("basic3").toString(), QLatin1String("bonjour")); QCOMPARE(object->property("disambiguation").toString(), QLatin1String("salut")); QCOMPARE(object->property("disambiguation2").toString(), QString::fromUtf8("\xc3\xa0 plus tard")); + QCOMPARE(object->property("disambiguation3").toString(), QLatin1String("salut")); QCOMPARE(object->property("noop").toString(), QLatin1String("bonjour")); QCOMPARE(object->property("noop2").toString(), QLatin1String("au revoir")); QCOMPARE(object->property("singular").toString(), QLatin1String("1 canard")); + QCOMPARE(object->property("singular2").toString(), QLatin1String("1 canard")); QCOMPARE(object->property("plural").toString(), QLatin1String("2 canards")); + QCOMPARE(object->property("plural2").toString(), QLatin1String("2 canards")); QCoreApplication::removeTranslator(&translator); delete object; |