ClangTools: Fix applying fixits one by one

If a file had multiple fixits and only a subset was applied, the
remaining fixits in that file were invalidated. Fix this by adjusting
the locations of the not yet applied fixits.

Change-Id: I2c190412e871e9011c4d4a62ed938e76ad4cdf72
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Nikolai Kosjar
2018-05-24 09:03:44 +02:00
parent 79b958b02e
commit bae61e08ea
7 changed files with 306 additions and 41 deletions

View File

@@ -230,6 +230,11 @@ DiagnosticItem::DiagnosticItem(const Diagnostic &diag, const OnFixitStatusChange
appendChild(new ExplainingStepItem(s));
}
DiagnosticItem::~DiagnosticItem()
{
setFixitOperations(ReplacementOperations());
}
Qt::ItemFlags DiagnosticItem::flags(int column) const
{
const Qt::ItemFlags itemFlags = TreeItem::flags(column);
@@ -338,9 +343,10 @@ void DiagnosticItem::setFixItStatus(const FixitStatus &status)
m_onFixitStatusChanged(status);
}
FixitStatus DiagnosticItem::fixItStatus() const
void DiagnosticItem::setFixitOperations(const ReplacementOperations &replacements)
{
return m_fixitStatus;
qDeleteAll(m_fixitOperations);
m_fixitOperations = replacements;
}
ExplainingStepItem::ExplainingStepItem(const ExplainingStep &step) : m_step(step)