aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qqmlirbuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/compiler/qqmlirbuilder.cpp')
-rw-r--r--src/qml/compiler/qqmlirbuilder.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp
index 2d1a617b09..96529f0061 100644
--- a/src/qml/compiler/qqmlirbuilder.cpp
+++ b/src/qml/compiler/qqmlirbuilder.cpp
@@ -921,6 +921,10 @@ bool IRBuilder::visit(QQmlJS::AST::UiPragma *node)
} else if (node->name == "ValueTypeBehavior"_L1) {
if (!PragmaParser<Pragma::ValueTypeBehaviorValue>::run(this, node, pragma))
return false;
+ } else if (node->name == "Translator"_L1) {
+ pragma->type = Pragma::Translator;
+ pragma->translationContextIndex = registerString(node->values->value.toString());
+
} else {
recordError(node->pragmaToken, QCoreApplication::translate(
"QQmlParser", "Unknown pragma '%1'").arg(node->name));
@@ -1711,6 +1715,11 @@ void QmlUnitGenerator::generate(Document &output, const QV4::CompiledData::Depen
createdUnit->flags |= Unit::ValueTypesAddressable;
}
break;
+ case Pragma::Translator:
+ if (createdUnit->translationTableSize)
+ if (quint32_le *index = createdUnit->translationContextIndex())
+ *index = p->translationContextIndex;
+ break;
}
}