diff options
-rw-r--r-- | src/webview.cpp | 23 | ||||
-rw-r--r-- | src/webview.h | 1 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/webview.cpp b/src/webview.cpp index f828fdac..88c0e664 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -203,7 +203,12 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) { menu.addSeparator(); - // TODO Add "View Image" && remove copy_this_image action + // TODO remove copy_this_image action + a = new KAction(KIcon("view-media-visualization"), i18n("&View Image"), this); + a->setData(result.imageUrl()); + connect(a, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(viewImage(Qt::MouseButtons, Qt::KeyboardModifiers))); + menu.addAction(a); + a = pageAction(QWebPage::DownloadImageToDisk); a->setIcon(KIcon("document-save")); menu.addAction(a); @@ -387,6 +392,22 @@ void WebView::printFrame() } +void WebView::viewImage(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers) +{ + KAction *a = qobject_cast<KAction*>(sender()); + KUrl url(a->data().toUrl()); + + if (modifiers & Qt::ControlModifier || buttons == Qt::MidButton) + { + Application::instance()->loadUrl(url, Rekonq::SettingOpenTab); + } + else + { + Application::instance()->loadUrl(url, Rekonq::CurrentTab); + } +} + + void WebView::openLinkInNewWindow() { KAction *a = qobject_cast<KAction*>(sender()); diff --git a/src/webview.h b/src/webview.h index baf8f9f5..101d2558 100644 --- a/src/webview.h +++ b/src/webview.h @@ -74,6 +74,7 @@ private slots: void printFrame(); + void viewImage(Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); void openLinkInNewWindow(); void openLinkInNewTab(); |