diff options
Diffstat (limited to 'src/libs/qmljsdebugclient/qmlprofilertraceclient.cpp')
-rw-r--r-- | src/libs/qmljsdebugclient/qmlprofilertraceclient.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/libs/qmljsdebugclient/qmlprofilertraceclient.cpp b/src/libs/qmljsdebugclient/qmlprofilertraceclient.cpp index cc130bba73..01eb3f56b3 100644 --- a/src/libs/qmljsdebugclient/qmlprofilertraceclient.cpp +++ b/src/libs/qmljsdebugclient/qmlprofilertraceclient.cpp @@ -159,6 +159,12 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data) int event; stream >> event; + // stop with the first data + if (d->recording && event != StartTrace) + setRecordingFromServer(false); + else if ((!d->recording) && event == StartTrace) + setRecordingFromServer(true); + if (event == EndTrace) { emit this->traceFinished(time); d->maximumTime = time; @@ -169,9 +175,6 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data) emit this->frame(time, frameRate, animationCount); d->maximumTime = qMax(time, d->maximumTime); } else if (event == StartTrace) { - // special: StartTrace is now asynchronous - if (!d->recording) - setRecordingFromServer(true); emit this->traceStarted(time); d->maximumTime = time; } else if (event < MaximumEventType) { @@ -191,6 +194,9 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data) d->rangeStartTimes[range].push(time); d->inProgressRanges |= (static_cast<qint64>(1) << range); ++d->rangeCount[range]; + // stop with the first data + if (d->recording) + setRecordingFromServer(false); } else if (messageType == RangeData) { QString data; stream >> data; |