diff --git a/src/lib/webengine/webview.h b/src/lib/webengine/webview.h --- a/src/lib/webengine/webview.h +++ b/src/lib/webengine/webview.h @@ -123,6 +123,7 @@ void openUrlInNewWindow(); void sendTextByMail(); void copyLinkToClipboard(); + void copyLinkTextToClipboard(); void savePageAs(); void copyImageToClipboard(); void downloadLinkToDisk(); diff --git a/src/lib/webengine/webview.cpp b/src/lib/webengine/webview.cpp --- a/src/lib/webengine/webview.cpp +++ b/src/lib/webengine/webview.cpp @@ -494,6 +494,13 @@ } } +void WebView::copyLinkTextToClipboard() +{ + if (QAction* action = qobject_cast(sender())) { + QApplication::clipboard()->setText(action->data().toString()); + } +} + void WebView::savePageAs() { #if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 10, 0) @@ -812,6 +819,7 @@ menu->addAction(QIcon::fromTheme("document-save"), tr("&Save link as..."), this, &WebView::downloadLinkToDisk); menu->addAction(QIcon::fromTheme("mail-message-new"), tr("Send link..."), this, &WebView::sendTextByMail)->setData(hitTest.linkUrl().toEncoded()); menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy link address"), this, &WebView::copyLinkToClipboard)->setData(hitTest.linkUrl()); + menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy link text"), this, &WebView::copyLinkTextToClipboard)->setData(hitTest.linkTitle()); menu->addSeparator(); if (!selectedText().isEmpty()) {