From 39807035dde25c5db453ee46df7b95e6ac53b575 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Sun, 27 Apr 2025 09:14:09 +0200 Subject: [PATCH] QmlDesigner: Optimize method by using constinit QString for null return value - Introduced constinit QString null to replace temporary QString object. - Updated return type to const QString& for better performance and consistency. - Ensured method returns null when no valid binding property is found. Change-Id: Ib74d45237d9396cca72d15bd550b6fb376da84cd Reviewed-by: Thomas Hartmann --- .../qmldesigner/libs/designercore/include/bindingproperty.h | 2 +- .../qmldesigner/libs/designercore/model/bindingproperty.cpp | 6 ++++-- .../libs/designercore/model/internalbindingproperty.cpp | 2 +- .../libs/designercore/model/internalbindingproperty.h | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmldesigner/libs/designercore/include/bindingproperty.h b/src/plugins/qmldesigner/libs/designercore/include/bindingproperty.h index 97eabc040e8..f33ebb6af8d 100644 --- a/src/plugins/qmldesigner/libs/designercore/include/bindingproperty.h +++ b/src/plugins/qmldesigner/libs/designercore/include/bindingproperty.h @@ -16,7 +16,7 @@ class QMLDESIGNERCORE_EXPORT BindingProperty final : public QmlDesigner::Abstrac public: void setExpression(const QString &expression); - QString expression() const; + const QString &expression() const; BindingProperty(); BindingProperty(const BindingProperty &property, AbstractView *view); diff --git a/src/plugins/qmldesigner/libs/designercore/model/bindingproperty.cpp b/src/plugins/qmldesigner/libs/designercore/model/bindingproperty.cpp index 57778d30bd1..ec073baab6f 100644 --- a/src/plugins/qmldesigner/libs/designercore/model/bindingproperty.cpp +++ b/src/plugins/qmldesigner/libs/designercore/model/bindingproperty.cpp @@ -56,14 +56,16 @@ void BindingProperty::setExpression(const QString &expression) privateModel()->setBindingProperty(internalNodeSharedPointer(), name(), expression); } -QString BindingProperty::expression() const +const constinit QString null; + +const QString &BindingProperty::expression() const { if (isValid()) { if (auto property = internalNode()->bindingProperty(name())) return property->expression(); } - return QString(); + return null; } ModelNode BindingProperty::resolveBinding(const QString &binding, ModelNode currentNode) const diff --git a/src/plugins/qmldesigner/libs/designercore/model/internalbindingproperty.cpp b/src/plugins/qmldesigner/libs/designercore/model/internalbindingproperty.cpp index 44b2dce30ec..be16a01e3dd 100644 --- a/src/plugins/qmldesigner/libs/designercore/model/internalbindingproperty.cpp +++ b/src/plugins/qmldesigner/libs/designercore/model/internalbindingproperty.cpp @@ -17,7 +17,7 @@ bool InternalBindingProperty::isValid() const return InternalProperty::isValid() && isBindingProperty(); } -QString InternalBindingProperty::expression() const +const QString &InternalBindingProperty::expression() const { return m_expression; } diff --git a/src/plugins/qmldesigner/libs/designercore/model/internalbindingproperty.h b/src/plugins/qmldesigner/libs/designercore/model/internalbindingproperty.h index 6744a814925..d3c7d86cbe9 100644 --- a/src/plugins/qmldesigner/libs/designercore/model/internalbindingproperty.h +++ b/src/plugins/qmldesigner/libs/designercore/model/internalbindingproperty.h @@ -18,7 +18,7 @@ public: bool isValid() const override; - QString expression() const; + const QString &expression() const; void setExpression(const QString &expression); void setDynamicExpression(const TypeName &type, const QString &expression);