forked from qt-creator/qt-creator
ClangTools: Fix copy action
* Location of the main diagnostic was not included. * No actual message/text of an ExplainingStepItem ended up in the tooltip. * Copy file path for FilePathItem * Copy location and text for ExplainingStepItem Change-Id: I47b890f77f5ff680ce82a75b51b598681a481385 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
@@ -57,6 +57,8 @@ QVariant FilePathItem::data(int column, int role) const
|
||||
return m_filePath;
|
||||
case Qt::DecorationRole:
|
||||
return Core::FileIconProvider::icon(m_filePath);
|
||||
case Debugger::DetailedErrorView::FullTextRole:
|
||||
return m_filePath;
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
@@ -295,15 +297,24 @@ static QString createExplainingStepString(const ExplainingStep &explainingStep,
|
||||
{
|
||||
return createExplainingStepNumberString(number)
|
||||
+ QLatin1Char(' ')
|
||||
+ explainingStep.extendedMessage
|
||||
+ explainingStep.message
|
||||
+ QLatin1Char(' ')
|
||||
+ createLocationString(explainingStep.location);
|
||||
}
|
||||
|
||||
|
||||
static QString lineColumnString(const Debugger::DiagnosticLocation &location)
|
||||
{
|
||||
return QString("%1:%2").arg(QString::number(location.line), QString::number(location.column));
|
||||
}
|
||||
|
||||
static QString fullText(const Diagnostic &diagnostic)
|
||||
{
|
||||
// Summary.
|
||||
QString text = diagnostic.category + QLatin1String(": ") + diagnostic.type;
|
||||
QString text = diagnostic.location.filePath + QLatin1Char(':');
|
||||
text += lineColumnString(diagnostic.location) + QLatin1String(": ");
|
||||
if (!diagnostic.category.isEmpty())
|
||||
text += diagnostic.category + QLatin1String(": ");
|
||||
text += diagnostic.type;
|
||||
if (diagnostic.type != diagnostic.description)
|
||||
text += QLatin1String(": ") + diagnostic.description;
|
||||
text += QLatin1Char('\n');
|
||||
@@ -380,11 +391,6 @@ static QVariant iconData(const QString &type)
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
static QString lineColumnString(const Debugger::DiagnosticLocation &location)
|
||||
{
|
||||
return QString("%1:%2").arg(QString::number(location.line), QString::number(location.column));
|
||||
}
|
||||
|
||||
QVariant DiagnosticItem::data(int column, int role) const
|
||||
{
|
||||
if (column == DiagnosticView::FixItColumn) {
|
||||
@@ -509,8 +515,10 @@ QVariant ExplainingStepItem::data(int column, int role) const
|
||||
switch (role) {
|
||||
case Debugger::DetailedErrorView::LocationRole:
|
||||
return QVariant::fromValue(m_step.location);
|
||||
case Debugger::DetailedErrorView::FullTextRole:
|
||||
return fullText(static_cast<DiagnosticItem *>(parent())->diagnostic());
|
||||
case Debugger::DetailedErrorView::FullTextRole: {
|
||||
return QString("%1:%2: %3")
|
||||
.arg(m_step.location.filePath, lineColumnString(m_step.location), m_step.message);
|
||||
}
|
||||
case ClangToolsDiagnosticModel::TextRole:
|
||||
return m_step.message;
|
||||
case ClangToolsDiagnosticModel::DiagnosticRole:
|
||||
|
Reference in New Issue
Block a user