diff --git a/src/libs/qmldebug/qmlprofilertraceclient.cpp b/src/libs/qmldebug/qmlprofilertraceclient.cpp index 7866b3cfaa0..05ffcab3a55 100644 --- a/src/libs/qmldebug/qmlprofilertraceclient.cpp +++ b/src/libs/qmldebug/qmlprofilertraceclient.cpp @@ -186,7 +186,7 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data) d->maximumTime = qMax(time, d->maximumTime); } } else if (messageType == Complete) { - emit complete(); + emit complete(d->maximumTime); } else if (messageType == SceneGraphFrame) { int sgEventType; int count = 0; diff --git a/src/libs/qmldebug/qmlprofilertraceclient.h b/src/libs/qmldebug/qmlprofilertraceclient.h index 8705207321b..6d38ecd2823 100644 --- a/src/libs/qmldebug/qmlprofilertraceclient.h +++ b/src/libs/qmldebug/qmlprofilertraceclient.h @@ -97,7 +97,7 @@ public slots: void sendRecordingStatus(); signals: - void complete(); + void complete(qint64 maximumTime); void gap(qint64 time); void event(int event, qint64 time); void traceFinished( qint64 time ); diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp index ace876168d9..2955832505e 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp @@ -172,8 +172,8 @@ void QmlProfilerClientManager::connectClientSignals() { QTC_ASSERT(d->profilerState, return); if (d->qmlclientplugin) { - connect(d->qmlclientplugin.data(), SIGNAL(complete()), - this, SLOT(qmlComplete())); + connect(d->qmlclientplugin.data(), SIGNAL(complete(qint64)), + this, SLOT(qmlComplete(qint64))); connect(d->qmlclientplugin.data(), SIGNAL(rangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation, qint64,qint64,qint64,qint64,qint64)), @@ -354,8 +354,10 @@ void QmlProfilerClientManager::retryMessageBoxFinished(int result) } } -void QmlProfilerClientManager::qmlComplete() +void QmlProfilerClientManager::qmlComplete(qint64 maximumTime) { + if (maximumTime > d->modelManager->traceTime()->endTime()) + d->modelManager->traceTime()->setEndTime(maximumTime); d->qmlDataReady = true; if (!d->v8clientplugin || d->v8clientplugin.data()->status() != QmlDebug::Enabled || d->v8DataReady) { emit dataReadyForProcessing(); diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h index a1c6791ce15..a96c2a909de 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h @@ -72,7 +72,7 @@ private slots: void connectionStateChanged(); void retryMessageBoxFinished(int result); - void qmlComplete(); + void qmlComplete(qint64 maximumTime); void v8Complete(); void profilerStateChanged();