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);