From 06b040c342e5bd6ffe62aa13171408d6c1f4c346 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 22 Nov 2011 09:44:38 +0100 Subject: Share URL by mail action This is heavily based on Andrea Di Menna's patch on reviewboard. Thanks :) REVIEW: 102674 --- src/webview.cpp | 28 ++++++++++++++++++++++++++++ src/webview.h | 1 + 2 files changed, 29 insertions(+) diff --git a/src/webview.cpp b/src/webview.cpp index 72923158..c4019d71 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -52,6 +52,7 @@ #include #include #include +#include // Qt Includes #include @@ -148,6 +149,10 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) KAction *inspectAction = new KAction(KIcon("layer-visible-on"), i18n("Inspect Element"), this); connect(inspectAction, SIGNAL(triggered(bool)), this, SLOT(inspect())); + KAction *sendByMailAction = new KAction(this); + sendByMailAction->setIcon(KIcon("mail-send")); + connect(sendByMailAction, SIGNAL(triggered(bool)), this, SLOT(sendByMail())); + // Choose right context int resultHit = 0; if (result.linkUrl().isEmpty()) @@ -174,6 +179,10 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) // EMPTY PAGE ACTIONS ------------------------------------------------------------------------- if (resultHit == WebView::EmptySelection) { + // send by mail: page url + sendByMailAction->setData(page()->currentFrame()->url()); + sendByMailAction->setText(i18n("Share page url")); + // navigation QWebHistory *history = page()->history(); if (history->canGoBack()) @@ -241,6 +250,10 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) // LINK ACTIONS ------------------------------------------------------------------------------- if (resultHit & WebView::LinkSelection) { + // send by mail: link url + sendByMailAction->setData(result.linkUrl()); + sendByMailAction->setText(i18n("Share link")); + a = new KAction(KIcon("tab-new"), i18n("Open in New &Tab"), this); a->setData(result.linkUrl()); connect(a, SIGNAL(triggered(bool)), this, SLOT(openLinkInNewTab())); @@ -265,6 +278,10 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) // IMAGE ACTIONS ------------------------------------------------------------------------------ if (resultHit & WebView::ImageSelection) { + // send by mail: image url + sendByMailAction->setData(result.imageUrl()); + sendByMailAction->setText(i18n("Share image link")); + // TODO remove copy_this_image action a = new KAction(KIcon("view-media-visualization"), i18n("&View Image"), this); a->setData(result.imageUrl()); @@ -362,6 +379,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) // DEFAULT ACTIONs (on the bottom) --------------------------------------------------- menu.addSeparator(); + menu.addAction(sendByMailAction); menu.addAction(inspectAction); // finally launch the menu... @@ -886,3 +904,13 @@ void WebView::dragMoveEvent(QDragMoveEvent *event) else KWebView::dragMoveEvent(event); } + + +void WebView::sendByMail() +{ + KAction *a = qobject_cast(sender()); + QString url = a->data().toString(); + kDebug() << "URL " << url; + + KToolInvocation::invokeMailer("", "", "", "", url); +} \ No newline at end of file diff --git a/src/webview.h b/src/webview.h index 042f95c6..7ab3acfa 100644 --- a/src/webview.h +++ b/src/webview.h @@ -86,6 +86,7 @@ private Q_SLOTS: void openLinkInNewWindow(); void openLinkInNewTab(); void bookmarkLink(); + void sendByMail(); void viewImage(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); void slotCopyImageLocation(); -- cgit v1.2.1