aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/debugger/qqmldebugserviceinterfaces.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/debugger/qqmldebugserviceinterfaces.cpp')
-rw-r--r--src/qml/debugger/qqmldebugserviceinterfaces.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/qml/debugger/qqmldebugserviceinterfaces.cpp b/src/qml/debugger/qqmldebugserviceinterfaces.cpp
index 7597a381b7..4067d1f5d1 100644
--- a/src/qml/debugger/qqmldebugserviceinterfaces.cpp
+++ b/src/qml/debugger/qqmldebugserviceinterfaces.cpp
@@ -45,6 +45,44 @@ QQmlDebugStatesDelegate *QQmlEngineDebugService::createStatesDelegate()
#if QT_CONFIG(translation)
QQmlDebugTranslationService::~QQmlDebugTranslationService()
= default;
+
+const TranslationBindingInformation TranslationBindingInformation::create(
+ const QQmlRefPointer<QV4::ExecutableCompilationUnit> &compilationUnit,
+ const QV4::CompiledData::Binding *binding, QObject *scopeObject,
+ QQmlRefPointer<QQmlContextData> ctxt)
+{
+ QQmlTranslation translation({});
+ if (binding->type() == QV4::CompiledData::Binding::Type_TranslationById) {
+ const QV4::CompiledData::TranslationData data =
+ compilationUnit->data->translations()[binding->value.translationDataIndex];
+ const QString id = compilationUnit->stringAt(data.stringIndex);
+ const int n = data.number;
+
+ translation = QQmlTranslation(QQmlTranslation::QsTrIdData(id, n));
+ } else {
+ Q_ASSERT(binding->type() == QV4::CompiledData::Binding::Type_Translation);
+
+ const QV4::CompiledData::TranslationData data =
+ compilationUnit->data->translations()[binding->value.translationDataIndex];
+ const QString context =
+ QQmlTranslation::contextFromQmlFilename(compilationUnit->fileName());
+ const QString text = compilationUnit->stringAt(data.stringIndex);
+ const QString comment = compilationUnit->stringAt(data.commentIndex);
+ const int n = data.number;
+
+ translation = QQmlTranslation(QQmlTranslation::QsTrData(context, text, comment, n));
+ }
+
+ return { compilationUnit,
+ scopeObject,
+ ctxt,
+
+ compilationUnit->stringAt(binding->propertyNameIndex),
+ translation,
+
+ binding->location.line(),
+ binding->location.column() };
+}
#endif
QT_END_NAMESPACE