forked from qt-creator/qt-creator
QmlDesigner: Tracing shows the node model relationship
Task-number: QDS-11952 Change-Id: I02769f07f3eadbe7f3e4095203619924cd545579 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -51,15 +51,19 @@ public:
|
||||
using Pointer = std::shared_ptr<InternalNode>;
|
||||
using WeakPointer = std::weak_ptr<InternalNode>;
|
||||
|
||||
explicit InternalNode(TypeName typeName, int majorVersion, int minorVersion, qint32 internalId)
|
||||
explicit InternalNode(TypeName typeName,
|
||||
int majorVersion,
|
||||
int minorVersion,
|
||||
qint32 internalId,
|
||||
ModelTracing::Category::FlowTokenType flowTraceToken)
|
||||
: typeName(std::move(typeName))
|
||||
, majorVersion(majorVersion)
|
||||
, minorVersion(minorVersion)
|
||||
, isValid(true)
|
||||
, internalId(internalId)
|
||||
, traceToken(ModelTracing::category().beginAsynchronous("InternalNode"_t,
|
||||
keyValue("type", typeName),
|
||||
keyValue("internal id", internalId)))
|
||||
, traceToken(flowTraceToken.beginAsynchronous("InternalNode"_t,
|
||||
keyValue("type", typeName),
|
||||
keyValue("internal id", internalId)))
|
||||
{}
|
||||
|
||||
InternalNodeAbstractProperty::Pointer parentProperty() const { return m_parentProperty.lock(); }
|
||||
|
@@ -295,7 +295,11 @@ InternalNodePointer ModelPrivate::createNode(const TypeName &typeName,
|
||||
if (!isRootNode)
|
||||
internalId = m_internalIdCounter++;
|
||||
|
||||
auto newNode = std::make_shared<InternalNode>(typeName, majorVersion, minorVersion, internalId);
|
||||
auto newNode = std::make_shared<InternalNode>(typeName,
|
||||
majorVersion,
|
||||
minorVersion,
|
||||
internalId,
|
||||
m_traceToken.tickWithFlow("create node"_t));
|
||||
|
||||
setTypeId(newNode.get(), typeName);
|
||||
|
||||
|
@@ -5,6 +5,8 @@
|
||||
|
||||
#include "qmldesignercorelib_global.h"
|
||||
|
||||
#include <tracing/qmldesignertracing.h>
|
||||
|
||||
#include "abstractview.h"
|
||||
#ifndef QDS_USE_PROJECTSTORAGE
|
||||
# include "metainfo.h"
|
||||
@@ -37,6 +39,8 @@ class NodeMetaInfoPrivate;
|
||||
|
||||
namespace Internal {
|
||||
|
||||
using namespace NanotraceHR::Literals;
|
||||
|
||||
class InternalNode;
|
||||
class InternalProperty;
|
||||
class InternalBindingProperty;
|
||||
@@ -353,6 +357,8 @@ private:
|
||||
QPointer<NodeInstanceView> m_nodeInstanceView;
|
||||
QPointer<Model> m_metaInfoProxyModel;
|
||||
QHash<TypeName, std::shared_ptr<NodeMetaInfoPrivate>> m_nodeMetaInfoCache;
|
||||
ModelTracing::AsynchronousToken m_traceToken = ModelTracing::category().beginAsynchronous(
|
||||
"Model"_t);
|
||||
bool m_writeLock = false;
|
||||
qint32 m_internalIdCounter = 1;
|
||||
};
|
||||
|
Reference in New Issue
Block a user