From fb5237a9c8bdd0f2cab156cd304b9ed2aba41c54 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 16 Dec 2013 10:46:43 +0100 Subject: [PATCH] QmlProfiler: Only load data into child models when it's ready Loading data on ProcessingData would lead to incomplete information about source code locations. Rebuilding the whole model on any kind of changed() signal is wasteful. Task-number: QTCREATORBUG-11100 Change-Id: I9f8d718bff6149ca2dc2d0482c11d66d940af15d Reviewed-by: Kai Koehne --- src/plugins/qmlprofiler/abstracttimelinemodel.cpp | 2 +- src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmlprofiler/abstracttimelinemodel.cpp b/src/plugins/qmlprofiler/abstracttimelinemodel.cpp index 35b59e2172a..fc8a22662ee 100644 --- a/src/plugins/qmlprofiler/abstracttimelinemodel.cpp +++ b/src/plugins/qmlprofiler/abstracttimelinemodel.cpp @@ -81,7 +81,7 @@ int AbstractTimelineModel::getBindingLoopDest(int index) const void AbstractTimelineModel::dataChanged() { switch (m_modelManager->state()) { - case QmlProfilerDataState::ProcessingData: + case QmlProfilerDataState::Done: loadData(); break; case QmlProfilerDataState::ClearingData: diff --git a/src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp b/src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp index 3b4cda33859..212a5abc25d 100644 --- a/src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp +++ b/src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp @@ -96,10 +96,10 @@ void QmlProfilerEventsModelProxy::limitToRange(qint64 rangeStart, qint64 rangeEn void QmlProfilerEventsModelProxy::dataChanged() { - if (d->modelManager->state() == QmlProfilerDataState::ClearingData) - clear(); - else + if (d->modelManager->state() == QmlProfilerDataState::Done) loadData(); + else if (d->modelManager->state() == QmlProfilerDataState::ClearingData) + clear(); } QSet QmlProfilerEventsModelProxy::eventsInBindingLoop() const