From 4ff20dfa8cdd3f36bb1783d7535bbf9cb1c5ab70 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Fri, 13 Nov 2015 17:53:00 +0100 Subject: [PATCH] QmlProfiler: Move location lookup into base model We will need it in a second derived model. Change-Id: I5d2459c490034b592f643f248bf5be2e44af44aa Reviewed-by: Joerg Bornemann --- .../qmlprofiler/qmlprofilerrangemodel.cpp | 12 +---------- .../qmlprofiler/qmlprofilertimelinemodel.cpp | 20 +++++++++++++++++++ .../qmlprofiler/qmlprofilertimelinemodel.h | 1 + 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/plugins/qmlprofiler/qmlprofilerrangemodel.cpp b/src/plugins/qmlprofiler/qmlprofilerrangemodel.cpp index fba91915f6a..7d76f4ef485 100644 --- a/src/plugins/qmlprofiler/qmlprofilerrangemodel.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerrangemodel.cpp @@ -242,17 +242,7 @@ QVariantMap QmlProfilerRangeModel::details(int index) const QVariantMap QmlProfilerRangeModel::location(int index) const { - QVariantMap result; - int id = selectionId(index); - - const QmlDebug::QmlEventLocation &location - = modelManager()->qmlModel()->getEventTypes().at(id).location; - - result.insert(QStringLiteral("file"), location.filename); - result.insert(QStringLiteral("line"), location.line); - result.insert(QStringLiteral("column"), location.column); - - return result; + return locationFromTypeId(index); } int QmlProfilerRangeModel::typeId(int index) const diff --git a/src/plugins/qmlprofiler/qmlprofilertimelinemodel.cpp b/src/plugins/qmlprofiler/qmlprofilertimelinemodel.cpp index 335828de7d8..78b90f78cb6 100644 --- a/src/plugins/qmlprofiler/qmlprofilertimelinemodel.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertimelinemodel.cpp @@ -127,4 +127,24 @@ int QmlProfilerTimelineModel::bindingLoopDest(int index) const return -1; } +QVariantMap QmlProfilerTimelineModel::locationFromTypeId(int index) const +{ + QVariantMap result; + int id = typeId(index); + if (id < 0) + return result; + + auto types = modelManager()->qmlModel()->getEventTypes(); + if (id >= types.length()) + return result; + + const QmlDebug::QmlEventLocation &location = types.at(id).location; + + result.insert(QStringLiteral("file"), location.filename); + result.insert(QStringLiteral("line"), location.line); + result.insert(QStringLiteral("column"), location.column); + + return result; +} + } diff --git a/src/plugins/qmlprofiler/qmlprofilertimelinemodel.h b/src/plugins/qmlprofiler/qmlprofilertimelinemodel.h index 7c85d9878d0..1ace1f1387e 100644 --- a/src/plugins/qmlprofiler/qmlprofilertimelinemodel.h +++ b/src/plugins/qmlprofiler/qmlprofilertimelinemodel.h @@ -58,6 +58,7 @@ public: virtual bool accepted(const QmlProfilerDataModel::QmlEventTypeData &event) const; bool handlesTypeId(int typeId) const; Q_INVOKABLE virtual int bindingLoopDest(int index) const; + QVariantMap locationFromTypeId(int index) const; virtual void loadData() = 0; void clear();