diff --git a/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp b/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp index 4dfd866fbe4..642db1bde48 100644 --- a/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp @@ -290,6 +290,11 @@ void QmlProfilerDataModel::clear() setState(Empty); } +void QmlProfilerDataModel::prepareForWriting() +{ + setState(AcquiringData); +} + void QmlProfilerDataModel::addRangedEvent(int type, int bindingType, qint64 startTime, qint64 length, const QStringList &data, const QmlDebug::QmlEventLocation &location) diff --git a/src/plugins/qmlprofiler/qmlprofilerdatamodel.h b/src/plugins/qmlprofiler/qmlprofilerdatamodel.h index 9ad3b14efab..a39bacaf58c 100644 --- a/src/plugins/qmlprofiler/qmlprofilerdatamodel.h +++ b/src/plugins/qmlprofiler/qmlprofilerdatamodel.h @@ -165,6 +165,7 @@ signals: public slots: void clear(); + void prepareForWriting(); void addRangedEvent(int type, int bindingType, qint64 startTime, qint64 length, const QStringList &data, const QmlDebug::QmlEventLocation &location); void addV8Event(int depth,const QString &function,const QString &filename, int lineNumber, double totalTime, double selfTime); diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 9e6a44cfd6b..8b539bfa270 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -692,6 +692,7 @@ void QmlProfilerTool::profilerStateChanged() } case QmlProfilerStateManager::AppKilled : { showNonmodalWarning(tr("Application finished before loading profiled data.\nPlease use the stop button instead.")); + d->m_profilerDataModel->clear(); break; } case QmlProfilerStateManager::Idle : @@ -720,6 +721,7 @@ void QmlProfilerTool::serverRecordingChanged() // clear the old data each time we start a new profiling session if (d->m_profilerState->serverRecording()) { clearData(); + d->m_profilerDataModel->prepareForWriting(); } } }