summaryrefslogtreecommitdiff
path: root/src/plugins/cppcheck/cppchecktextmark.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cppcheck/cppchecktextmark.cpp')
-rw-r--r--src/plugins/cppcheck/cppchecktextmark.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/cppcheck/cppchecktextmark.cpp b/src/plugins/cppcheck/cppchecktextmark.cpp
index 55d5b43f4c..d4882e7f05 100644
--- a/src/plugins/cppcheck/cppchecktextmark.cpp
+++ b/src/plugins/cppcheck/cppchecktextmark.cpp
@@ -29,6 +29,9 @@
#include <utils/utilsicons.h>
+#include <QAction>
+#include <QApplication>
+#include <QClipboard>
#include <QMap>
namespace Cppcheck {
@@ -77,6 +80,19 @@ 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(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);
+ });
+ setActions({action});
}
QString CppcheckTextMark::toolTipText(const QString &severityText) const