diff options
author | Marco Bubke <marco.bubke@digia.com> | 2013-05-28 16:48:46 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2013-05-29 12:50:59 +0200 |
commit | c7dd854842e57d10b4781e8d592278351a778d55 (patch) | |
tree | 5ee1ad2a6dedecb84c32f9f96377179484c50a05 /src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp | |
parent | 8934100a127631a9e66ad0fb3356ad815527f464 (diff) | |
download | qt-creator-c7dd854842e57d10b4781e8d592278351a778d55.tar.gz |
QmlDesigner: Add helper functions for translated text
Change-Id: Ib5b5037f492f7f7ee448aebd5215d28e0ccae7f0
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Diffstat (limited to 'src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index 0681f2f3f5..42643ed82f 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -175,6 +175,34 @@ QVariant QmlObjectNode::modelValue(const PropertyName &name) const return propertyChanges.modelNode().variantProperty(name).value(); } +bool QmlObjectNode::isTranslatableText(const PropertyName &name) const +{ + if (modelNode().metaInfo().isValid() && modelNode().metaInfo().hasProperty(name)) + if (modelNode().metaInfo().propertyTypeName(name) == "QString" || modelNode().metaInfo().propertyTypeName(name) == "string") { + if (modelNode().hasBindingProperty(name)) { + static QRegExp regularExpressionPatter("qsTr\\((\".*\")\\)"); + return regularExpressionPatter.exactMatch(modelNode().bindingProperty(name).expression()); + } + + return false; + } + + return false; +} + +QString QmlObjectNode::stripedTranslatableText(const PropertyName &name) const +{ + if (modelNode().hasBindingProperty(name)) { + static QRegExp regularExpressionPatter("qsTr\\(\"(.*)\"\\)"); + if (regularExpressionPatter.exactMatch(modelNode().bindingProperty(name).expression())) + return regularExpressionPatter.cap(1); + } else { + return modelNode().variantProperty(name).value().toString(); + } + + return QString(); +} + QString QmlObjectNode::expression(const PropertyName &name) const { if (!isValid()) @@ -387,6 +415,11 @@ QVariant QmlObjectNode::instanceValue(const ModelNode &modelNode, const Property return modelView->instanceForModelNode(modelNode).property(name); } +QString QmlObjectNode::generateTranslatableText(const QString &text) +{ + return QString("qsTr(\"%1\")").arg(text); +} + TypeName QmlObjectNode::instanceType(const PropertyName &name) const { return nodeInstance().instanceType(name); |