QmlProfiler: Use generic timeline classes where applicable.

Change-Id: I7bab7b20f3467f000a7ba4917919caa8f15ecf22
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2014-12-05 17:33:21 +01:00
parent 13c5cee372
commit dcbd4ac1c6
6 changed files with 62 additions and 53 deletions

View File

@@ -34,6 +34,9 @@
#include "qmlprofilermodelmanager.h"
#include "timelinemodelaggregator.h"
#include "qmlprofilernotesmodel.h"
#include "qmlprofileranimationsmodel.h"
#include "qmlprofilerrangemodel.h"
#include "qmlprofilerplugin.h"
// Needed for the load&save actions in the context menu
#include <analyzerbase/ianalyzertool.h>
@@ -117,11 +120,9 @@ QmlProfilerTraceView::QmlProfilerTraceView(QWidget *parent, Analyzer::IAnalyzerT
d->m_profilerTool = profilerTool;
d->m_viewContainer = container;
d->m_modelManager = modelManager;
d->m_modelProxy = new TimelineModelAggregator(this);
d->m_modelProxy->setModelManager(modelManager);
connect(d->m_modelManager, SIGNAL(stateChanged()),
this, SLOT(profilerDataModelStateChanged()));
d->m_modelProxy = new TimelineModelAggregator(modelManager->notesModel(), this);
setModelManager(modelManager);
d->m_mainView->rootContext()->setContextProperty(QLatin1String("qmlProfilerModelProxy"),
d->m_modelProxy);
d->m_profilerState = profilerState;
@@ -130,6 +131,33 @@ QmlProfilerTraceView::QmlProfilerTraceView(QWidget *parent, Analyzer::IAnalyzerT
setMinimumHeight(170);
}
void QmlProfilerTraceView::setModelManager(QmlProfilerModelManager *modelManager)
{
d->m_modelManager = modelManager;
connect(modelManager,SIGNAL(dataAvailable()),
d->m_modelProxy,SIGNAL(dataAvailable()));
// external models pushed on top
foreach (QmlProfilerTimelineModel *timelineModel,
QmlProfilerPlugin::instance->getModels(modelManager)) {
d->m_modelProxy->addModel(timelineModel);
}
d->m_modelProxy->addModel(new QmlProfilerAnimationsModel(modelManager,
d->m_modelProxy));
for (int i = 0; i < QmlDebug::MaximumRangeType; ++i)
d->m_modelProxy->addModel(new QmlProfilerRangeModel(modelManager, (QmlDebug::RangeType)i,
d->m_modelProxy));
// Connect this last so that it's executed after the models have updated their data.
connect(modelManager->qmlModel(), SIGNAL(changed()),
d->m_modelProxy, SIGNAL(stateChanged()));
connect(d->m_modelManager, SIGNAL(stateChanged()),
this, SLOT(profilerDataModelStateChanged()));
}
QmlProfilerTraceView::~QmlProfilerTraceView()
{
delete d;