From 602e08dbeecd5fcfd85a202e1784fcd485a28040 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Fri, 2 Jun 2023 14:38:27 +0200 Subject: [PATCH] QmlDesigner: Fix issue with duration tracking An event can start and end duration tracking at the same time. Task-number: QDS-9961 Change-Id: I97265f753887e87ef5bdb9b4bc93ca97922a51d4 Reviewed-by: Vikas Pachdha Reviewed-by: --- src/plugins/qmldesigner/qmldesignerplugin.cpp | 20 ++++++++++++------- src/plugins/qmldesigner/qmldesignerplugin.h | 1 + 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 7fcce8cf531..0cff0ffad8f 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -710,16 +710,16 @@ void QmlDesignerPlugin::emitUsageStatistics(const QString &identifier) const int currentTime = privateInstance()->timer.elapsed(); const int currentDuration = (currentTime - activeData.time); if (currentDuration < activeData.maxDuration) - emit instance()->usageStatisticsUsageDuration(activeData.newIdentifer, currentDuration); + instance()->emitUsageStatisticsUsageDuration(activeData.newIdentifer, currentDuration); privateInstance()->m_activeTraceIdentifierDataHash.remove(identifier); - } else { - TraceIdentifierData data = privateInstance()->m_traceIdentifierDataHash.value(identifier); + } - if (!data.identifier.isEmpty()) { - data.time = privateInstance()->timer.elapsed(); - privateInstance()->m_activeTraceIdentifierDataHash.insert(data.identifier, data); - } + TraceIdentifierData data = privateInstance()->m_traceIdentifierDataHash.value(identifier); + + if (!data.identifier.isEmpty()) { + data.time = privateInstance()->timer.elapsed(); + privateInstance()->m_activeTraceIdentifierDataHash.insert(data.identifier, data); } const auto values = privateInstance()->m_activeTraceIdentifierDataHash.values(); @@ -862,6 +862,12 @@ void QmlDesignerPlugin::emitUsageStatisticsTime(const QString &identifier, int e emit instance()->usageStatisticsUsageTimer(normalizeIdentifier(identifier), elapsed); } +void QmlDesignerPlugin::emitUsageStatisticsUsageDuration(const QString &identifier, int elapsed) +{ + QTC_ASSERT(instance(), return ); + emit instance()->usageStatisticsUsageDuration(identifier, elapsed); +} + QmlDesignerPlugin *QmlDesignerPlugin::instance() { return m_instance; diff --git a/src/plugins/qmldesigner/qmldesignerplugin.h b/src/plugins/qmldesigner/qmldesignerplugin.h index 8c3317ccb9f..4080678e892 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.h +++ b/src/plugins/qmldesigner/qmldesignerplugin.h @@ -76,6 +76,7 @@ public: static void emitUsageStatisticsContextAction(const QString &identifier); static void emitUsageStatisticsHelpRequested(const QString &identifier); static void emitUsageStatisticsTime(const QString &identifier, int elapsed); + static void emitUsageStatisticsUsageDuration(const QString &identifier, int elapsed); static AsynchronousImageCache &imageCache();