summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/webview.cpp23
-rw-r--r--src/webview.h1
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();