QmlProfiler: Use current restriction range when saving notes

We don't want to clear notes outside the current restriction as those
are still valid and need to be available for later reloading.

Change-Id: If3e75ff2b2ab9a93578c5ca63f1b4a2f539dc802
Task-number: QTCREATORBUG-16542
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
Ulf Hermann
2016-07-04 09:52:11 +02:00
parent 268fea1c5a
commit 561841b93b
3 changed files with 11 additions and 5 deletions

View File

@@ -314,7 +314,7 @@ void QmlProfilerModelManager::save(const QString &filename)
return;
}
d->notesModel->saveData();
d->notesModel->saveData(d->traceTime->startTime(), d->traceTime->endTime());
QmlProfilerFileWriter *writer = new QmlProfilerFileWriter(this);
writer->setTraceTime(traceTime()->startTime(), traceTime()->endTime(),
@@ -442,7 +442,7 @@ void QmlProfilerModelManager::clear()
void QmlProfilerModelManager::restrictToRange(qint64 startTime, qint64 endTime)
{
d->notesModel->saveData();
d->notesModel->saveData(d->traceTime->startTime(), d->traceTime->endTime());
setState(ClearingData);
setVisibleFeatures(0);

View File

@@ -26,6 +26,8 @@
#include "qmlprofilernotesmodel.h"
#include "qmlprofilerdatamodel.h"
#include <utils/algorithm.h>
namespace QmlProfiler {
QmlProfilerNotesModel::QmlProfilerNotesModel(QObject *parent) : TimelineNotesModel(parent)
@@ -74,9 +76,13 @@ void QmlProfilerNotesModel::loadData()
emit changed(-1, -1, -1);
}
void QmlProfilerNotesModel::saveData()
void QmlProfilerNotesModel::saveData(qint64 startTime, qint64 endTime)
{
m_notes.clear();
// Keep notes that are outside the given range, overwrite the ones inside the range.
m_notes = Utils::filtered(m_notes, [startTime, endTime](const QmlNote &note) {
return note.startTime() > endTime || note.startTime() + note.duration() < startTime;
});
for (int i = 0; i < count(); ++i) {
const Timeline::TimelineModel *model = timelineModelByModelId(timelineModel(i));
if (!model)

View File

@@ -38,7 +38,7 @@ public:
QmlProfilerNotesModel(QObject *parent);
void loadData();
void saveData();
void saveData(qint64 startTime, qint64 endTime);
const QVector<QmlNote> &notes() const;
void setNotes(const QVector<QmlNote> &notes);