diff options
author | Ulf Hermann <ulf.hermann@digia.com> | 2014-03-12 17:20:52 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@digia.com> | 2014-09-12 15:40:48 +0200 |
commit | b4f336f1427287b2a10b85ee5c62abeeac9d17b3 (patch) | |
tree | fc39f63ddde325f74fa7e18b8c66a256a279bb87 /src/plugins/qmlprofiler | |
parent | 2776536a7efd6758de1d6720b2c05a9fe0bc65a5 (diff) | |
download | qt-creator-b4f336f1427287b2a10b85ee5c62abeeac9d17b3.tar.gz |
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 <kai.koehne@digia.com>
Diffstat (limited to 'src/plugins/qmlprofiler')
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp | 8 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp | 12 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilermodelmanager.h | 3 |
3 files changed, 19 insertions, 4 deletions
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<int>)), + d->modelManager->traceTime(), SLOT(increaseEndTime(qint64))); + connect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64,QList<int>)), + 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; |