summaryrefslogtreecommitdiff
path: root/src/plugins/qmlprofiler
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@digia.com>2014-03-12 17:20:52 +0100
committerUlf Hermann <ulf.hermann@digia.com>2014-09-12 15:40:48 +0200
commitb4f336f1427287b2a10b85ee5c62abeeac9d17b3 (patch)
treefc39f63ddde325f74fa7e18b8c66a256a279bb87 /src/plugins/qmlprofiler
parent2776536a7efd6758de1d6720b2c05a9fe0bc65a5 (diff)
downloadqt-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.cpp8
-rw-r--r--src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp12
-rw-r--r--src/plugins/qmlprofiler/qmlprofilermodelmanager.h3
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;