From 6fa00b81290a18e6fd33f875538109130962c597 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 15 Feb 2024 09:36:44 +0100 Subject: [PATCH] QmlDesigner: Add more tracing to properties Task-number: QDS-11952 Change-Id: I27376acc1a77291de2253a295df0e3cecce1427e Reviewed-by: Tim Jenssen --- .../designercore/model/internalbindingproperty.cpp | 3 +++ .../designercore/model/internalnodelistproperty.cpp | 8 ++++++++ .../designercore/model/internalnodeproperty.cpp | 8 ++++++++ .../qmldesigner/designercore/model/internalproperty.cpp | 6 +++++- .../qmldesigner/designercore/model/internalproperty.h | 2 ++ .../designercore/model/internalsignalhandlerproperty.cpp | 4 ++++ .../designercore/model/internalvariantproperty.cpp | 2 ++ 7 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/model/internalbindingproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalbindingproperty.cpp index 6a3eee19753..2e7542c79b1 100644 --- a/src/plugins/qmldesigner/designercore/model/internalbindingproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalbindingproperty.cpp @@ -21,8 +21,11 @@ QString InternalBindingProperty::expression() const { return m_expression; } + void InternalBindingProperty::setExpression(const QString &expression) { + traceToken.tick("expression"_t, keyValue("expression", expression)); + m_expression = expression; } diff --git a/src/plugins/qmldesigner/designercore/model/internalnodelistproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalnodelistproperty.cpp index c5aaa8fa94a..c0d3944b066 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnodelistproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalnodelistproperty.cpp @@ -40,12 +40,20 @@ int InternalNodeListProperty::indexOf(const InternalNode::Pointer &node) const void InternalNodeListProperty::add(const InternalNode::Pointer &internalNode) { Q_ASSERT(!m_nodeList.contains(internalNode)); + + auto flowToken = traceToken.tickWithFlow("add node"_t); + internalNode->traceToken.tick(flowToken, "node added"_t); + m_nodeList.append(internalNode); } void InternalNodeListProperty::remove(const InternalNodePointer &internalNode) { Q_ASSERT(m_nodeList.contains(internalNode)); + + auto flowToken = traceToken.tickWithFlow("remove node"_t); + internalNode->traceToken.tick(flowToken, "node removed"_t); + m_nodeList.removeAll(internalNode); } diff --git a/src/plugins/qmldesigner/designercore/model/internalnodeproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalnodeproperty.cpp index df9f5593725..ff9d71d6fdb 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnodeproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalnodeproperty.cpp @@ -42,6 +42,10 @@ bool InternalNodeProperty::isValid() const void InternalNodeProperty::remove([[maybe_unused]] const InternalNode::Pointer &node) { Q_ASSERT(m_node == node); + + auto flowToken = traceToken.tickWithFlow("remove node"_t); + node->traceToken.tick(flowToken, "node removed"_t); + m_node.reset(); } @@ -49,6 +53,10 @@ void InternalNodeProperty::add(const InternalNode::Pointer &node) { Q_ASSERT(node); Q_ASSERT(node->parentProperty()); + + auto flowToken = traceToken.tickWithFlow("add node"_t); + node->traceToken.tick(flowToken, "node added"_t); + m_node = node; } diff --git a/src/plugins/qmldesigner/designercore/model/internalproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalproperty.cpp index 9d83c31e0fc..0b5b56adf08 100644 --- a/src/plugins/qmldesigner/designercore/model/internalproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalproperty.cpp @@ -70,12 +70,16 @@ TypeName InternalProperty::dynamicTypeName() const void InternalProperty::setDynamicTypeName(const TypeName &name) { + traceToken.tick("dynamic type name"_t, keyValue("name", name)); + m_dynamicType = name; } void InternalProperty::resetDynamicTypeName() { - m_dynamicType.clear(); + traceToken.tick("reset dynamic type name"_t); + + m_dynamicType.clear(); } } // namespace Internal diff --git a/src/plugins/qmldesigner/designercore/model/internalproperty.h b/src/plugins/qmldesigner/designercore/model/internalproperty.h index 2313929f5c1..f5ca983969c 100644 --- a/src/plugins/qmldesigner/designercore/model/internalproperty.h +++ b/src/plugins/qmldesigner/designercore/model/internalproperty.h @@ -193,6 +193,8 @@ private: TypeName m_dynamicType; std::weak_ptr m_propertyOwner; PropertyType m_propertyType = PropertyType::None; + +protected: NO_UNIQUE_ADDRESS ModelTracing::AsynchronousToken traceToken; }; diff --git a/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp index 70aade63a68..d199ad4b8c9 100644 --- a/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalsignalhandlerproperty.cpp @@ -23,6 +23,8 @@ QString InternalSignalHandlerProperty::source() const } void InternalSignalHandlerProperty::setSource(const QString &source) { + traceToken.tick("source"_t, keyValue("source", source)); + m_source = source; } @@ -38,6 +40,8 @@ QString InternalSignalDeclarationProperty::signature() const void InternalSignalDeclarationProperty::setSignature(const QString &signature) { + traceToken.tick("signature"_t, keyValue("signature", signature)); + m_signature = signature; } diff --git a/src/plugins/qmldesigner/designercore/model/internalvariantproperty.cpp b/src/plugins/qmldesigner/designercore/model/internalvariantproperty.cpp index 53a0347c173..04ff6fff708 100644 --- a/src/plugins/qmldesigner/designercore/model/internalvariantproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/internalvariantproperty.cpp @@ -19,6 +19,8 @@ QVariant InternalVariantProperty::value() const void InternalVariantProperty::setValue(const QVariant &value) { + traceToken.tick("value"_t, keyValue("value", value)); + m_value = value; }