TextMark: Delay context menu tooltip action creation

Change-Id: I25bad9a774a6d95162251c8f0512eb3f8439d9ae
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2022-08-03 15:25:17 +02:00
parent d3ea90ec20
commit c68f901aa8
6 changed files with 89 additions and 77 deletions

View File

@@ -80,19 +80,20 @@ CppcheckTextMark::CppcheckTextMark (const Diagnostic &diagnostic)
setToolTip(toolTipText(diagnostic.severityText));
setLineAnnotation(diagnostic.message);
setSettingsPage(Constants::OPTIONS_PAGE_ID);
// Copy to clipboard action
QAction *action = new QAction();
action->setIcon(QIcon::fromTheme("edit-copy", Utils::Icons::COPY.icon()));
action->setToolTip(TextMark::tr("Copy to Clipboard"));
QObject::connect(action, &QAction::triggered, [diagnostic]() {
const QString text = QString("%1:%2: %3")
.arg(diagnostic.fileName.toUserOutput())
.arg(diagnostic.lineNumber)
.arg(diagnostic.message);
QApplication::clipboard()->setText(text);
setActionsProvider([diagnostic] {
// Copy to clipboard action
QAction *action = new QAction;
action->setIcon(QIcon::fromTheme("edit-copy", Utils::Icons::COPY.icon()));
action->setToolTip(TextMark::tr("Copy to Clipboard"));
QObject::connect(action, &QAction::triggered, [diagnostic]() {
const QString text = QString("%1:%2: %3")
.arg(diagnostic.fileName.toUserOutput())
.arg(diagnostic.lineNumber)
.arg(diagnostic.message);
QApplication::clipboard()->setText(text);
});
return QList<QAction *>{action};
});
setActions({action});
}
QString CppcheckTextMark::toolTipText(const QString &severityText) const