summaryrefslogtreecommitdiff
path: root/src/webview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webview.cpp')
-rw-r--r--src/webview.cpp23
1 files changed, 22 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());