From b4f336f1427287b2a10b85ee5c62abeeac9d17b3 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 12 Mar 2014 17:20:52 +0100 Subject: QmlProfiler: Add EngineControl With EngineControl multiple QQuickViews can be profiled in one profiler if they're all running in the same thread. As the QML engines are never run in parallel then this results in useful data. Change-Id: I83a34fb81fd466c5cac838b096c1b1f322ded882 Reviewed-by: Kai Koehne --- src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp | 8 ++++---- src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp | 12 ++++++++++++ src/plugins/qmlprofiler/qmlprofilermodelmanager.h | 3 +++ 3 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp index e077273484..2d209f6f9f 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp @@ -182,10 +182,10 @@ void QmlProfilerClientManager::connectClientSignals() SLOT(addQmlEvent(QmlDebug::Message,QmlDebug::RangeType,int,qint64,qint64, QString,QmlDebug::QmlEventLocation,qint64,qint64,qint64,qint64, qint64))); - connect(d->qmlclientplugin.data(), SIGNAL(traceFinished(qint64)), - d->modelManager->traceTime(), SLOT(setEndTime(qint64))); - connect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64)), - d->modelManager->traceTime(), SLOT(setStartTime(qint64))); + connect(d->qmlclientplugin.data(), SIGNAL(traceFinished(qint64,QList)), + d->modelManager->traceTime(), SLOT(increaseEndTime(qint64))); + connect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64,QList)), + d->modelManager->traceTime(), SLOT(decreaseStartTime(qint64))); connect(d->qmlclientplugin.data(), SIGNAL(enabledChanged()), d->qmlclientplugin.data(), SLOT(sendRecordingStatus())); // fixme: this should be unified for both clients diff --git a/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp b/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp index 8f38bb884e..c7bcd297ae 100644 --- a/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp @@ -132,6 +132,18 @@ void QmlProfilerTraceTime::setEndTime(qint64 time) } } +void QmlProfilerTraceTime::decreaseStartTime(qint64 time) +{ + if (m_startTime > time) + setStartTime(time); +} + +void QmlProfilerTraceTime::increaseEndTime(qint64 time) +{ + if (m_endTime < time) + setEndTime(time); +} + } // namespace Internal diff --git a/src/plugins/qmlprofiler/qmlprofilermodelmanager.h b/src/plugins/qmlprofiler/qmlprofilermodelmanager.h index 1b4a8a3b1a..2479eb037e 100644 --- a/src/plugins/qmlprofiler/qmlprofilermodelmanager.h +++ b/src/plugins/qmlprofiler/qmlprofilermodelmanager.h @@ -94,6 +94,9 @@ public slots: void setStartTime(qint64 time); void setEndTime(qint64 time); + void decreaseStartTime(qint64 time); + void increaseEndTime(qint64 time); + private: qint64 m_startTime; qint64 m_endTime; -- cgit v1.2.1