From f5867d0fff5a963e2a32e6a562b6da0cae5f91fb Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Wed, 6 Feb 2019 15:18:28 +0100 Subject: [PATCH] ClangTools: Fix showing location for ExplainingStepItem In case the ExplainingStepItem refers to another file than the main diagnostic, display the file name too. Change-Id: I1df2781766dc0c7a58b451e3c96b78574d574e54 Reviewed-by: Ivan Donchevskii --- .../clangtools/clangtoolsdiagnosticmodel.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp index 657ffe36d24..7a2d78ed3a3 100644 --- a/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp +++ b/src/plugins/clangtools/clangtoolsdiagnosticmodel.cpp @@ -524,21 +524,28 @@ QVariant ExplainingStepItem::data(int column, int role) const case ClangToolsDiagnosticModel::DiagnosticRole: return QVariant::fromValue(static_cast(parent())->diagnostic()); case Qt::DisplayRole: { + const QString mainFilePath = static_cast(parent())->diagnostic().location.filePath; + const QString locationString + = m_step.location.filePath == mainFilePath + ? lineColumnString(m_step.location) + : QString("%1:%2").arg(QFileInfo(m_step.location.filePath).fileName(), + lineColumnString(m_step.location)); + if (m_step.isFixIt) { if (m_step.ranges[0] == m_step.ranges[1]) { return QString("%1: Insertion of \"%2\".") - .arg(lineColumnString(m_step.location), m_step.message); + .arg(locationString, m_step.message); } if (m_step.message.isEmpty()) { return QString("%1: Removal of %2.") - .arg(lineColumnString(m_step.location), rangeString(m_step.ranges)); + .arg(locationString, rangeString(m_step.ranges)); } return QString("%1: Replacement of %2 with: \"%3\".") - .arg(lineColumnString(m_step.location), + .arg(locationString, rangeString(m_step.ranges), m_step.message); } - return QString("%1: %2").arg(lineColumnString(m_step.location), m_step.message); + return QString("%1: %2").arg(locationString, m_step.message); } case Qt::ToolTipRole: return createExplainingStepToolTipString(m_step);