From 28f6459933b9672d7854dab7b0e1d95d90cf23bc Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 26 May 2015 11:12:09 +0200 Subject: qmlprofiler: Improve output of event location and optional descriptions Line and column information can be useful even without a file name. The file name can sometimes be inferred from the function being run and doesn't have to be stated again. Empty displayName and details tags are pretty useless, though. Change-Id: I0a65696d391e00d56f04acf646e3179dca163883 Reviewed-by: Simon Hausmann --- tools/qmlprofiler/qmlprofilerdata.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'tools/qmlprofiler/qmlprofilerdata.cpp') diff --git a/tools/qmlprofiler/qmlprofilerdata.cpp b/tools/qmlprofiler/qmlprofilerdata.cpp index 7e4f174f17..a8a5b1f7b3 100644 --- a/tools/qmlprofiler/qmlprofilerdata.cpp +++ b/tools/qmlprofiler/qmlprofilerdata.cpp @@ -509,21 +509,24 @@ bool QmlProfilerData::save(const QString &filename) stream.writeStartElement(QStringLiteral("event")); stream.writeAttribute(QStringLiteral("index"), QString::number( d->eventDescriptions.keys().indexOf(eventData->eventHashStr))); - stream.writeTextElement(QStringLiteral("displayname"), eventData->displayName); + if (!eventData->displayName.isEmpty()) + stream.writeTextElement(QStringLiteral("displayname"), eventData->displayName); if (eventData->rangeType != QQmlProfilerDefinitions::MaximumRangeType) stream.writeTextElement(QStringLiteral("type"), qmlRangeTypeAsString(eventData->rangeType)); else stream.writeTextElement(QStringLiteral("type"), qmlMessageAsString(eventData->message)); - if (!eventData->location.filename.isEmpty()) { + if (!eventData->location.filename.isEmpty()) stream.writeTextElement(QStringLiteral("filename"), eventData->location.filename); + if (eventData->location.line >= 0) stream.writeTextElement(QStringLiteral("line"), QString::number(eventData->location.line)); + if (eventData->location.column >= 0) stream.writeTextElement(QStringLiteral("column"), QString::number(eventData->location.column)); - } - stream.writeTextElement(QStringLiteral("details"), eventData->details); + if (!eventData->details.isEmpty()) + stream.writeTextElement(QStringLiteral("details"), eventData->details); if (eventData->rangeType == QQmlProfilerDefinitions::Binding) stream.writeTextElement(QStringLiteral("bindingType"), QString::number((int)eventData->detailType)); -- cgit v1.2.3