From 382aed1f72f1d573c02deb2cf5840bbc95904adb Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 16 Nov 2020 14:51:46 +0100 Subject: [PATCH] QmlDesigner: Improve return values You can return by const reference if you the ownership of the return value is non local. If it is local you should return by value. In that case it should be non const because otherwise the compile cannot move the return value. Change-Id: I2a4b08dd0e67a2c2741a46bdd7def842c1db3fbf Reviewed-by: Thomas Hartmann Reviewed-by: Mahmoud Badri --- .../transitioneditor/transitioneditorview.cpp | 2 +- .../transitioneditor/transitioneditorview.h | 2 +- .../designercore/include/abstractview.h | 4 ++-- .../qmldesigner/designercore/include/modelnode.h | 14 +++++++------- .../designercore/include/nodeabstractproperty.h | 4 ++-- .../designercore/include/nodelistproperty.h | 4 ++-- .../designercore/include/qmlitemnode.h | 6 +++--- .../include/qmltimelinekeyframegroup.h | 4 ++-- .../designercore/model/abstractview.cpp | 4 ++-- .../designercore/model/internalnode.cpp | 2 +- .../designercore/model/internalnode_p.h | 2 +- .../qmldesigner/designercore/model/modelnode.cpp | 15 +++++++-------- .../designercore/model/nodeabstractproperty.cpp | 4 ++-- .../designercore/model/nodelistproperty.cpp | 4 ++-- .../designercore/model/qmlitemnode.cpp | 6 +++--- .../model/qmltimelinekeyframegroup.cpp | 4 ++-- 16 files changed, 40 insertions(+), 41 deletions(-) diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp index 62fb34403ba..277a743dc6b 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp @@ -348,7 +348,7 @@ void TransitionEditorView::openSettingsDialog() dialog->show(); } -const QList TransitionEditorView::allTransitions() const +QList TransitionEditorView::allTransitions() const { if (rootModelNode().isValid() && rootModelNode().hasProperty("transitions")) { NodeAbstractProperty transitions = rootModelNode().nodeAbstractProperty("transitions"); diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h index 857467e3cd9..5a60d05a202 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h @@ -83,7 +83,7 @@ public: void openSettingsDialog(); - const QList allTransitions() const; + QList allTransitions() const; void asyncUpdate(const ModelNode &transition); diff --git a/src/plugins/qmldesigner/designercore/include/abstractview.h b/src/plugins/qmldesigner/designercore/include/abstractview.h index a7632574c0a..88c15ccf76c 100644 --- a/src/plugins/qmldesigner/designercore/include/abstractview.h +++ b/src/plugins/qmldesigner/designercore/include/abstractview.h @@ -142,7 +142,7 @@ public: const QString &nodeSource = QString(), ModelNode::NodeSourceType nodeSourceType = ModelNode::NodeWithoutSource); - const ModelNode rootModelNode() const; + ModelNode rootModelNode() const; ModelNode rootModelNode(); void setSelectedModelNodes(const QList &selectedNodeList); @@ -155,7 +155,7 @@ public: bool hasSingleSelectedModelNode() const; bool isSelectedModelNode(const ModelNode &modelNode) const; - const QList selectedModelNodes() const; + QList selectedModelNodes() const; ModelNode firstSelectedModelNode() const; ModelNode singleSelectedModelNode() const; diff --git a/src/plugins/qmldesigner/designercore/include/modelnode.h b/src/plugins/qmldesigner/designercore/include/modelnode.h index b48161ad315..a7ad9897287 100644 --- a/src/plugins/qmldesigner/designercore/include/modelnode.h +++ b/src/plugins/qmldesigner/designercore/include/modelnode.h @@ -115,12 +115,12 @@ public: void setParentProperty(const ModelNode &newParentNode, const PropertyName &propertyName); bool hasParentProperty() const; - const QList directSubModelNodes() const; - const QList directSubModelNodesOfType(const TypeName &typeName) const; - const QList subModelNodesOfType(const TypeName &typeName) const; + QList directSubModelNodes() const; + QList directSubModelNodesOfType(const TypeName &typeName) const; + QList subModelNodesOfType(const TypeName &typeName) const; - const QList allSubModelNodes() const; - const QList allSubModelNodesAndThisNode() const; + QList allSubModelNodes() const; + QList allSubModelNodesAndThisNode() const; bool hasAnySubModelNodes() const; //### @@ -186,11 +186,11 @@ public: static int variantUserType(); QVariant toVariant() const; - const QVariant auxiliaryData(const PropertyName &name) const; + QVariant auxiliaryData(const PropertyName &name) const; void setAuxiliaryData(const PropertyName &name, const QVariant &data) const; void removeAuxiliaryData(const PropertyName &name) const; bool hasAuxiliaryData(const PropertyName &name) const; - QHash auxiliaryData() const; + const QHash &auxiliaryData() const; QString customId() const; bool hasCustomId() const; diff --git a/src/plugins/qmldesigner/designercore/include/nodeabstractproperty.h b/src/plugins/qmldesigner/designercore/include/nodeabstractproperty.h index 1386b4265ed..ae9e070d6ea 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeabstractproperty.h +++ b/src/plugins/qmldesigner/designercore/include/nodeabstractproperty.h @@ -53,8 +53,8 @@ public: int indexOf(const ModelNode &node) const; NodeAbstractProperty parentProperty() const; - const QList allSubNodes(); - const QList directSubNodes() const; + QList allSubNodes(); + QList directSubNodes() const; protected: NodeAbstractProperty(const PropertyName &propertyName, const Internal::InternalNodePointer &internalNode, Model *model, AbstractView *view); diff --git a/src/plugins/qmldesigner/designercore/include/nodelistproperty.h b/src/plugins/qmldesigner/designercore/include/nodelistproperty.h index b10a5a45fd9..806ecde6b3e 100644 --- a/src/plugins/qmldesigner/designercore/include/nodelistproperty.h +++ b/src/plugins/qmldesigner/designercore/include/nodelistproperty.h @@ -48,8 +48,8 @@ class QMLDESIGNERCORE_EXPORT NodeListProperty : public NodeAbstractProperty public: NodeListProperty(); NodeListProperty(const NodeListProperty &nodeListProperty, AbstractView *view); - const QList toModelNodeList() const; - const QList toQmlObjectNodeList() const; + QList toModelNodeList() const; + QList toQmlObjectNodeList() const; void slide(int, int) const; void swap(int, int) const; void reparentHere(const ModelNode &modelNode); diff --git a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h index c3c01eec814..cd336b81d58 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlitemnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlitemnode.h @@ -186,9 +186,9 @@ public: static bool isValidQmlFlowViewNode(const ModelNode &modelNode); QList flowItems() const; ModelNode addTransition(const QmlFlowTargetNode &from, const QmlFlowTargetNode &to); - const QList transitions() const; - const QList wildcards() const; - const QList decicions() const; + QList transitions() const; + QList wildcards() const; + QList decicions() const; QList transitionsForTarget(const ModelNode &modelNode); QList transitionsForSource(const ModelNode &modelNode); void removeDanglingTransitions(); diff --git a/src/plugins/qmldesigner/designercore/include/qmltimelinekeyframegroup.h b/src/plugins/qmldesigner/designercore/include/qmltimelinekeyframegroup.h index c37be6934b6..a20eeae55eb 100644 --- a/src/plugins/qmldesigner/designercore/include/qmltimelinekeyframegroup.h +++ b/src/plugins/qmldesigner/designercore/include/qmltimelinekeyframegroup.h @@ -65,9 +65,9 @@ public: ModelNode keyframe(qreal position) const; - const QList keyframes() const; + QList keyframes() const; - const QList keyframePositions() const; + QList keyframePositions() const; static bool isValidKeyframe(const ModelNode &node); static bool checkKeyframesType(const ModelNode &node); diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp index 6a1a8d4897b..963b001f238 100644 --- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp +++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp @@ -102,7 +102,7 @@ ModelNode AbstractView::createModelNode(const TypeName &typeName, Returns the constant root model node. */ -const ModelNode AbstractView::rootModelNode() const +ModelNode AbstractView::rootModelNode() const { Q_ASSERT(model()); return ModelNode(model()->d->rootNode(), model(), const_cast(this)); @@ -465,7 +465,7 @@ bool AbstractView::isSelectedModelNode(const ModelNode &modelNode) const Sets the list of nodes to the actual selected nodes. Returns a list of the selected nodes. */ -const QList AbstractView::selectedModelNodes() const +QList AbstractView::selectedModelNodes() const { return toModelNodeList(model()->d->selectedNodes()); } diff --git a/src/plugins/qmldesigner/designercore/model/internalnode.cpp b/src/plugins/qmldesigner/designercore/model/internalnode.cpp index 1f8b6227654..17b1d61eb2f 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalnode.cpp @@ -187,7 +187,7 @@ bool InternalNode::hasAuxiliaryData(const PropertyName &name) const return m_auxiliaryDataHash.contains(name); } -QHash InternalNode::auxiliaryData() const +const QHash &InternalNode::auxiliaryData() const { return m_auxiliaryDataHash; } diff --git a/src/plugins/qmldesigner/designercore/model/internalnode_p.h b/src/plugins/qmldesigner/designercore/model/internalnode_p.h index d8b0e314f84..69f1f3c1ee8 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode_p.h +++ b/src/plugins/qmldesigner/designercore/model/internalnode_p.h @@ -84,7 +84,7 @@ public: void setAuxiliaryData(const PropertyName &name, const QVariant &data); void removeAuxiliaryData(const PropertyName &name); bool hasAuxiliaryData(const PropertyName &name) const; - QHash auxiliaryData() const; + const QHash &auxiliaryData() const; InternalProperty::Pointer property(const PropertyName &name) const; InternalBindingProperty::Pointer bindingProperty(const PropertyName &name) const; diff --git a/src/plugins/qmldesigner/designercore/model/modelnode.cpp b/src/plugins/qmldesigner/designercore/model/modelnode.cpp index 1eafaf531a1..e249e2fb6a3 100644 --- a/src/plugins/qmldesigner/designercore/model/modelnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelnode.cpp @@ -106,9 +106,8 @@ ModelNode::ModelNode(ModelNode &&other) ModelNode &ModelNode::operator=(ModelNode &&other) { - ModelNode newNode; + ModelNode newNode = std::move(other); - swap(other, newNode); swap(*this, newNode); return *this; @@ -800,19 +799,19 @@ The list contains every ModelNode that belongs to one of this ModelNodes properties. \return a list of all ModelNodes that are direct children */ -const QList ModelNode::directSubModelNodes() const +QList ModelNode::directSubModelNodes() const { return toModelNodeList(internalNode()->allDirectSubNodes(), view()); } -const QList ModelNode::directSubModelNodesOfType(const TypeName &typeName) const +QList ModelNode::directSubModelNodesOfType(const TypeName &typeName) const { return Utils::filtered(directSubModelNodes(), [typeName](const ModelNode &node){ return node.metaInfo().isValid() && node.metaInfo().isSubclassOf(typeName); }); } -const QList ModelNode::subModelNodesOfType(const TypeName &typeName) const +QList ModelNode::subModelNodesOfType(const TypeName &typeName) const { return Utils::filtered(allSubModelNodes(), [typeName](const ModelNode &node){ return node.metaInfo().isValid() && node.metaInfo().isSubclassOf(typeName); @@ -826,12 +825,12 @@ All children in this list will be implicitly removed if this ModelNode is destro \return a list of all ModelNodes that are direct or indirect children */ -const QList ModelNode::allSubModelNodes() const +QList ModelNode::allSubModelNodes() const { return toModelNodeList(internalNode()->allSubNodes(), view()); } -const QList ModelNode::allSubModelNodesAndThisNode() const +QList ModelNode::allSubModelNodesAndThisNode() const { QList modelNodeList; modelNodeList.append(*this); @@ -1065,7 +1064,7 @@ bool ModelNode::hasAuxiliaryData(const PropertyName &name) const return internalNode()->hasAuxiliaryData(name); } -QHash ModelNode::auxiliaryData() const +const QHash &ModelNode::auxiliaryData() const { if (!isValid()) throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); diff --git a/src/plugins/qmldesigner/designercore/model/nodeabstractproperty.cpp b/src/plugins/qmldesigner/designercore/model/nodeabstractproperty.cpp index b9c1fb7075b..41e7123823e 100644 --- a/src/plugins/qmldesigner/designercore/model/nodeabstractproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/nodeabstractproperty.cpp @@ -141,7 +141,7 @@ int NodeAbstractProperty::count() const return property->count(); } -const QList NodeAbstractProperty::allSubNodes() +QList NodeAbstractProperty::allSubNodes() { if (!internalNode() || !internalNode()->isValid() @@ -153,7 +153,7 @@ const QList NodeAbstractProperty::allSubNodes() return QmlDesigner::toModelNodeList(property->allSubNodes(), view()); } -const QList NodeAbstractProperty::directSubNodes() const +QList NodeAbstractProperty::directSubNodes() const { if (!internalNode() || !internalNode()->isValid() diff --git a/src/plugins/qmldesigner/designercore/model/nodelistproperty.cpp b/src/plugins/qmldesigner/designercore/model/nodelistproperty.cpp index 8271bad362b..2fa462c85af 100644 --- a/src/plugins/qmldesigner/designercore/model/nodelistproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/nodelistproperty.cpp @@ -63,7 +63,7 @@ static QList internalNodesToModelNodes(const QList NodeListProperty::toModelNodeList() const +QList NodeListProperty::toModelNodeList() const { if (!isValid()) throw InvalidPropertyException(__LINE__, __FUNCTION__, __FILE__, ""); @@ -77,7 +77,7 @@ const QList NodeListProperty::toModelNodeList() const return QList(); } -const QList NodeListProperty::toQmlObjectNodeList() const +QList NodeListProperty::toQmlObjectNodeList() const { if (model()->nodeInstanceView()) return QList(); diff --git a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp index 814d5494806..3a63b7ae346 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlitemnode.cpp @@ -718,7 +718,7 @@ ModelNode QmlFlowViewNode::addTransition(const QmlFlowTargetNode &from, const Qm return transition; } -const QList QmlFlowViewNode::transitions() const +QList QmlFlowViewNode::transitions() const { if (modelNode().nodeListProperty("flowTransitions").isValid()) return modelNode().nodeListProperty("flowTransitions").toModelNodeList(); @@ -726,7 +726,7 @@ const QList QmlFlowViewNode::transitions() const return {}; } -const QList QmlFlowViewNode::wildcards() const +QList QmlFlowViewNode::wildcards() const { if (modelNode().nodeListProperty("flowWildcards").isValid()) return modelNode().nodeListProperty("flowWildcards").toModelNodeList(); @@ -734,7 +734,7 @@ const QList QmlFlowViewNode::wildcards() const return {}; } -const QList QmlFlowViewNode::decicions() const +QList QmlFlowViewNode::decicions() const { if (modelNode().nodeListProperty("flowDecisions").isValid()) return modelNode().nodeListProperty("flowDecisions").toModelNodeList(); diff --git a/src/plugins/qmldesigner/designercore/model/qmltimelinekeyframegroup.cpp b/src/plugins/qmldesigner/designercore/model/qmltimelinekeyframegroup.cpp index 11474d91711..ad0855ad955 100644 --- a/src/plugins/qmldesigner/designercore/model/qmltimelinekeyframegroup.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmltimelinekeyframegroup.cpp @@ -255,12 +255,12 @@ qreal QmlTimelineKeyframeGroup::maxActualKeyframe() const return max; } -const QList QmlTimelineKeyframeGroup::keyframes() const +QList QmlTimelineKeyframeGroup::keyframes() const { return modelNode().defaultNodeListProperty().toModelNodeList(); } -const QList QmlTimelineKeyframeGroup::keyframePositions() const +QList QmlTimelineKeyframeGroup::keyframePositions() const { QList returnValues; for (const ModelNode &childNode : modelNode().defaultNodeListProperty().toModelNodeList()) {