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();