From 5ad3c9b55acaa56c18ab8a9c8f1cd1cdc9508f2d Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Sat, 24 May 2025 11:22:23 +0200 Subject: [PATCH] QmlDesigner: Add qml connection tracing Change-Id: I36e51857e29f609e1ff218ea8affa766f61ef42f Reviewed-by: Thomas Hartmann --- .../qmldesigner/qmltools/qmlconnections.cpp | 80 +++++++++++++------ .../qmldesigner/qmltools/qmlconnections.h | 24 +++--- 2 files changed, 69 insertions(+), 35 deletions(-) diff --git a/src/plugins/qmldesigner/qmltools/qmlconnections.cpp b/src/plugins/qmldesigner/qmltools/qmlconnections.cpp index b7d04f3f387..33a7123b3f3 100644 --- a/src/plugins/qmldesigner/qmltools/qmlconnections.cpp +++ b/src/plugins/qmldesigner/qmltools/qmlconnections.cpp @@ -9,41 +9,46 @@ namespace QmlDesigner { -QmlConnections::QmlConnections() +static auto category = ModelTracing::category; + +bool QmlConnections::isValid(SL sl) const { + return isValidQmlConnections(modelNode(), sl); } -QmlConnections::QmlConnections(const ModelNode &modelNode) - : QmlModelNodeFacade(modelNode) +bool QmlConnections::isValidQmlConnections(const ModelNode &modelNode, SL sl) { -} - -bool QmlConnections::isValid() const -{ - return isValidQmlConnections(modelNode()); -} - -bool QmlConnections::isValidQmlConnections(const ModelNode &modelNode) -{ - return isValidQmlModelNodeFacade(modelNode) - && modelNode.metaInfo().isValid() - && (modelNode.type() == "Connections" - || modelNode.type() == "QtQuick.Connections" - || modelNode.type() == "Qt.Connections" - || modelNode.type() == "QtQml.Connections"); + using NanotraceHR::keyValue; + NanotraceHR::Tracer tracer{"qml connection is valid qml connections", + category(), + keyValue("model node", modelNode), + keyValue("caller location", sl)}; + return isValidQmlModelNodeFacade(modelNode) && modelNode.metaInfo().isValid() + && (modelNode.type() == "Connections" || modelNode.type() == "QtQuick.Connections" + || modelNode.type() == "Qt.Connections" || modelNode.type() == "QtQml.Connections"); } /*! Removes connections node. */ -void QmlConnections::destroy() +void QmlConnections::destroy(SL sl) { - Q_ASSERT(isValid()); + using NanotraceHR::keyValue; + NanotraceHR::Tracer tracer{"qml connection destroy", + category(), + keyValue("model node", *this), + keyValue("caller location", sl)}; modelNode().destroy(); } -QString QmlConnections::target() const +QString QmlConnections::target(SL sl) const { + using NanotraceHR::keyValue; + NanotraceHR::Tracer tracer{"qml connections target", + category(), + keyValue("model node", *this), + keyValue("caller location", sl)}; + if (modelNode().isValid()) { const BindingProperty bindingproperty = modelNode().bindingProperty("target"); if (bindingproperty.isValid()) @@ -53,13 +58,26 @@ QString QmlConnections::target() const return QString(); } -void QmlConnections::setTarget(const QString &target) +void QmlConnections::setTarget(const QString &target, SL sl) { + using NanotraceHR::keyValue; + NanotraceHR::Tracer tracer{"qml connections set target", + category(), + keyValue("model node", *this), + keyValue("target", target), + keyValue("caller location", sl)}; + modelNode().bindingProperty("target").setExpression(target); } -ModelNode QmlConnections::getTargetNode() const +ModelNode QmlConnections::getTargetNode(SL sl) const { + using NanotraceHR::keyValue; + NanotraceHR::Tracer tracer{"qml connections get target node", + category(), + keyValue("model node", *this), + keyValue("caller location", sl)}; + ModelNode result; if (!modelNode().isValid()) @@ -91,13 +109,25 @@ ModelNode QmlConnections::getTargetNode() const return result; } -QList QmlConnections::signalProperties() const +QList QmlConnections::signalProperties(SL sl) const { + using NanotraceHR::keyValue; + NanotraceHR::Tracer tracer{"qml connections signal properties", + category(), + keyValue("model node", *this), + keyValue("caller location", sl)}; + return modelNode().signalProperties(); } -ModelNode QmlConnections::createQmlConnections(AbstractView *view) +ModelNode QmlConnections::createQmlConnections(AbstractView *view, SL sl) { + using NanotraceHR::keyValue; + NanotraceHR::Tracer tracer{"qml connections create qml connections", + category(), + keyValue("view", view), + keyValue("caller location", sl)}; + #ifdef QDS_USE_PROJECTSTORAGE return view->createModelNode("Connections"); #else diff --git a/src/plugins/qmldesigner/qmltools/qmlconnections.h b/src/plugins/qmldesigner/qmltools/qmlconnections.h index 88b6a498a91..3e091f0b58c 100644 --- a/src/plugins/qmldesigner/qmltools/qmlconnections.h +++ b/src/plugins/qmldesigner/qmltools/qmlconnections.h @@ -16,22 +16,26 @@ class QMLDESIGNER_EXPORT QmlConnections : public QmlModelNodeFacade friend StatesEditorView; public: - QmlConnections(); - QmlConnections(const ModelNode &modelNode); + QmlConnections() = default; + + QmlConnections(const ModelNode &modelNode) + : QmlModelNodeFacade(modelNode) + {} explicit operator bool() const { return isValid(); } - bool isValid() const; - static bool isValidQmlConnections(const ModelNode &modelNode); - void destroy(); - QString target() const; - void setTarget(const QString &target); + bool isValid(SL sl = {}) const; + static bool isValidQmlConnections(const ModelNode &modelNode, SL sl = {}); + void destroy(SL sl = {}); - ModelNode getTargetNode() const; + QString target(SL sl = {}) const; + void setTarget(const QString &target, SL sl = {}); - QList signalProperties() const; + ModelNode getTargetNode(SL sl = {}) const; - static ModelNode createQmlConnections(AbstractView *view); + QList signalProperties(SL sl = {}) const; + + static ModelNode createQmlConnections(AbstractView *view, SL sl = {}); }; } //QmlDesigner