From 0f3409bf3fd89e194dfd732f188beaee46a129d4 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 28 May 2018 16:40:36 +0200 Subject: [PATCH] QmlProfiler: Set the future to finished after loading all events Change-Id: I9b23eb5a10558279a47b9bcc106430d5c2b802e0 Task-number: QTCREATORBUG-20508 Reviewed-by: Tobias Hunger --- src/libs/tracing/timelinetracefile.cpp | 5 +++++ src/libs/tracing/timelinetracefile.h | 2 ++ src/plugins/qmlprofiler/qmlprofilertracefile.cpp | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/src/libs/tracing/timelinetracefile.cpp b/src/libs/tracing/timelinetracefile.cpp index 858cddbb9d8..52fc962360f 100644 --- a/src/libs/tracing/timelinetracefile.cpp +++ b/src/libs/tracing/timelinetracefile.cpp @@ -67,6 +67,11 @@ void TimelineTraceFile::fail(const QString &message) m_future.cancel(); } +void TimelineTraceFile::finish() +{ + m_future.reportFinished(); +} + bool TimelineTraceFile::isCanceled() const { return m_future.isCanceled(); diff --git a/src/libs/tracing/timelinetracefile.h b/src/libs/tracing/timelinetracefile.h index 4c1a255ba7c..6be162f28a4 100644 --- a/src/libs/tracing/timelinetracefile.h +++ b/src/libs/tracing/timelinetracefile.h @@ -64,7 +64,9 @@ public: virtual void save(QIODevice *device) = 0; virtual void load(QIODevice *device) = 0; + void fail(const QString &message); + void finish(); void setTraceStart(qint64 traceStart) { m_traceStart = traceStart; } qint64 traceStart() const { return m_traceStart; } diff --git a/src/plugins/qmlprofiler/qmlprofilertracefile.cpp b/src/plugins/qmlprofiler/qmlprofilertracefile.cpp index 0a69f1324c5..38ac383f363 100644 --- a/src/plugins/qmlprofiler/qmlprofilertracefile.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertracefile.cpp @@ -191,6 +191,8 @@ void QmlProfilerTraceFile::loadQtd(QIODevice *device) if (stream.hasError()) fail(tr("Error while parsing trace data file: %1").arg(stream.errorString())); + else + finish(); } void QmlProfilerTraceFile::loadQzt(QIODevice *device) @@ -285,6 +287,8 @@ void QmlProfilerTraceFile::loadQzt(QIODevice *device) buffer.close(); setDeviceProgress(device); } + + finish(); } void QmlProfilerTraceFile::addEventsProgress(qint64 timestamp)