Extract text mark functionality into own class

Enhance issue information by id of the issue to be able
to retrieve further details later.

Change-Id: Ia6ff5c8a0064c45b50f9c712a05f6271f356e59a
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2023-01-13 13:49:40 +01:00
parent 4b3f5a04e2
commit 134b71a45a
3 changed files with 23 additions and 7 deletions

View File

@@ -60,6 +60,26 @@ public:
static AxivionPlugin *s_instance = nullptr;
static AxivionPluginPrivate *dd = nullptr;
class AxivionTextMark : public TextEditor::TextMark
{
public:
AxivionTextMark(const Utils::FilePath &filePath, const ShortIssue &issue);
private:
QString m_id;
};
AxivionTextMark::AxivionTextMark(const Utils::FilePath &filePath, const ShortIssue &issue)
: TextEditor::TextMark(filePath, issue.lineNumber, {Tr::tr("Axivion"), AxivionTextMarkId})
, m_id(issue.id)
{
const QString markText = issue.entity.isEmpty() ? issue.message
: issue.entity + ": " + issue.message;
setToolTip(issue.errorNumber + " " + markText);
setPriority(TextEditor::TextMark::NormalPriority);
setLineAnnotation(markText);
}
AxivionPlugin::AxivionPlugin()
{
s_instance = this;
@@ -298,13 +318,7 @@ void AxivionPluginPrivate::handleIssuesForFile(const IssuesList &issues)
// FIXME the line location can be wrong (even the whole issue could be wrong)
// depending on whether this line has been changed since the last axivion run and the
// current state of the file - some magic has to happen here
auto mark = new TextEditor::TextMark(filePath, issue.lineNumber,
{Tr::tr("Axivion"), axivionId});
const QString markText = issue.entity.isEmpty() ? issue.message
: issue.entity + ": " + issue.message;
mark->setToolTip(issue.errorNumber + " " + markText);
mark->setPriority(TextEditor::TextMark::NormalPriority);
mark->setLineAnnotation(markText);
new AxivionTextMark(filePath, issue);
}
}