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 <vikas.pachdha@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Thomas Hartmann
2023-06-02 14:38:27 +02:00
parent 3c36e77858
commit 602e08dbee
2 changed files with 14 additions and 7 deletions

View File

@@ -710,16 +710,16 @@ void QmlDesignerPlugin::emitUsageStatistics(const QString &identifier)
const int currentTime = privateInstance()->timer.elapsed(); const int currentTime = privateInstance()->timer.elapsed();
const int currentDuration = (currentTime - activeData.time); const int currentDuration = (currentTime - activeData.time);
if (currentDuration < activeData.maxDuration) if (currentDuration < activeData.maxDuration)
emit instance()->usageStatisticsUsageDuration(activeData.newIdentifer, currentDuration); instance()->emitUsageStatisticsUsageDuration(activeData.newIdentifer, currentDuration);
privateInstance()->m_activeTraceIdentifierDataHash.remove(identifier); privateInstance()->m_activeTraceIdentifierDataHash.remove(identifier);
} else { }
TraceIdentifierData data = privateInstance()->m_traceIdentifierDataHash.value(identifier);
if (!data.identifier.isEmpty()) { TraceIdentifierData data = privateInstance()->m_traceIdentifierDataHash.value(identifier);
data.time = privateInstance()->timer.elapsed();
privateInstance()->m_activeTraceIdentifierDataHash.insert(data.identifier, data); if (!data.identifier.isEmpty()) {
} data.time = privateInstance()->timer.elapsed();
privateInstance()->m_activeTraceIdentifierDataHash.insert(data.identifier, data);
} }
const auto values = privateInstance()->m_activeTraceIdentifierDataHash.values(); 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); 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() QmlDesignerPlugin *QmlDesignerPlugin::instance()
{ {
return m_instance; return m_instance;

View File

@@ -76,6 +76,7 @@ public:
static void emitUsageStatisticsContextAction(const QString &identifier); static void emitUsageStatisticsContextAction(const QString &identifier);
static void emitUsageStatisticsHelpRequested(const QString &identifier); static void emitUsageStatisticsHelpRequested(const QString &identifier);
static void emitUsageStatisticsTime(const QString &identifier, int elapsed); static void emitUsageStatisticsTime(const QString &identifier, int elapsed);
static void emitUsageStatisticsUsageDuration(const QString &identifier, int elapsed);
static AsynchronousImageCache &imageCache(); static AsynchronousImageCache &imageCache();