From d24a09a6beb9e2807197670e515678aee4bfd045 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 8 Sep 2022 12:15:33 +0200 Subject: [PATCH] QmlDesigner: Add static helper function for translations Adds: stripedTranslatableTextFunction() convertToCorrectTranslatableFunction() Change-Id: I9f8b50924c4c99cda43d32c03080bab83cfaff44 Reviewed-by: Aleksei German --- .../designercore/include/qmlobjectnode.h | 5 +++++ .../designercore/model/qmlobjectnode.cpp | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h b/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h index 3b83420325d..83541fc4184 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h @@ -119,6 +119,11 @@ public: static QVariant instanceValue(const ModelNode &modelNode, const PropertyName &name); static QString generateTranslatableText(const QString& text); + + static QString stripedTranslatableTextFunction(const QString &text); + + static QString convertToCorrectTranslatableFunction(const QString &text); + QString simplifiedTypeName() const; QStringList allStateNames() const; diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index a7a88245d13..5baaa8bbafb 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -665,6 +665,21 @@ QString QmlObjectNode::generateTranslatableText(const QString &text) #endif } +QString QmlObjectNode::stripedTranslatableTextFunction(const QString &text) +{ + const QRegularExpression regularExpressionPattern( + QLatin1String("^qsTr(|Id|anslate)\\(\"(.*)\"\\)$")); + const QRegularExpressionMatch match = regularExpressionPattern.match(text); + if (match.hasMatch()) + return match.captured(2); + return text; +} + +QString QmlObjectNode::convertToCorrectTranslatableFunction(const QString &text) +{ + return generateTranslatableText(stripedTranslatableTextFunction(text)); +} + TypeName QmlObjectNode::instanceType(const PropertyName &name) const { return nodeInstance().instanceType(name);