diff options
Diffstat (limited to 'src')
| -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(); | 
