diff --git a/src/lib/webengine/webview.cpp b/src/lib/webengine/webview.cpp index 53c3049c5..8bc01b930 100644 --- a/src/lib/webengine/webview.cpp +++ b/src/lib/webengine/webview.cpp @@ -433,6 +433,27 @@ void WebView::copyLinkToClipboard() } } +void WebView::downloadLinkToDisk() +{ +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + triggerPageAction(QWebEnginePage::DownloadLinkToDisk); +#endif +} + +void WebView::downloadImageToDisk() +{ +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + triggerPageAction(QWebEnginePage::DownloadImageToDisk); +#endif +} + +void WebView::downloadMediaToDisk() +{ +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + triggerPageAction(QWebEnginePage::DownloadMediaToDisk); +#endif +} + void WebView::openUrlInNewTab(const QUrl &url, Qz::NewTabPositionFlags position) { QNetworkRequest request(url); @@ -441,24 +462,6 @@ void WebView::openUrlInNewTab(const QUrl &url, Qz::NewTabPositionFlags position) loadInNewTab(request, position); } -void WebView::downloadUrlToDisk() -{ -#if QTWEBENGINE_DISABLED - if (QAction* action = qobject_cast(sender())) { - QNetworkRequest request(action->data().toUrl()); - - DownloadManager::DownloadInfo info; - info.page = page(); - info.suggestedFileName = QString(); - info.askWhatToDo = false; - info.forceChoosingPath = true; - - DownloadManager* dManager = mApp->downloadManager(); - dManager->download(request, info); - } -#endif -} - void WebView::openActionUrl() { if (QAction* action = qobject_cast(sender())) { @@ -712,8 +715,8 @@ void WebView::createLinkContextMenu(QMenu* menu, const WebHitTestResult &hitTest bData << hitTest.linkUrl() << hitTest.linkTitle(); menu->addAction(QIcon::fromTheme("bookmark-new"), tr("B&ookmark link"), this, SLOT(bookmarkLink()))->setData(bData); -#if QTWEBENGINE_DISABLED - menu->addAction(QIcon::fromTheme("document-save"), tr("&Save link as..."), this, SLOT(downloadUrlToDisk()))->setData(hitTest.linkUrl()); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + menu->addAction(QIcon::fromTheme("document-save"), tr("&Save link as..."), this, SLOT(downloadLinkToDisk())); #endif menu->addAction(QIcon::fromTheme("mail-message-new"), tr("Send link..."), this, SLOT(sendLinkByMail()))->setData(hitTest.linkUrl()); menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy link address"), this, SLOT(copyLinkToClipboard()))->setData(hitTest.linkUrl()); @@ -735,8 +738,8 @@ void WebView::createImageContextMenu(QMenu* menu, const WebHitTestResult &hitTes menu->addAction(act); menu->addAction(QIcon::fromTheme("edit-copy"), tr("Copy image ad&dress"), this, SLOT(copyLinkToClipboard()))->setData(hitTest.imageUrl()); menu->addSeparator(); -#if QTWEBENGINE_DISABLED - menu->addAction(QIcon::fromTheme("document-save"), tr("&Save image as..."), this, SLOT(downloadUrlToDisk()))->setData(hitTest.imageUrl()); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + menu->addAction(QIcon::fromTheme("document-save"), tr("&Save image as..."), this, SLOT(downloadImageToDisk())); #endif menu->addAction(QIcon::fromTheme("mail-message-new"), tr("Send image..."), this, SLOT(sendLinkByMail()))->setData(hitTest.imageUrl()); menu->addSeparator(); @@ -830,8 +833,8 @@ void WebView::createMediaContextMenu(QMenu *menu, const WebHitTestResult &hitTes menu->addSeparator(); menu->addAction(QIcon::fromTheme("edit-copy"), tr("&Copy Media Address"), this, SLOT(copyLinkToClipboard()))->setData(hitTest.mediaUrl()); menu->addAction(QIcon::fromTheme("mail-message-new"), tr("&Send Media Address"), this, SLOT(sendLinkByMail()))->setData(hitTest.mediaUrl()); -#if QTWEBENGINE_DISABLED - menu->addAction(QIcon::fromTheme("document-save"), tr("Save Media To &Disk"), this, SLOT(downloadUrlToDisk()))->setData(hitTest.mediaUrl()); +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + menu->addAction(QIcon::fromTheme("document-save"), tr("Save Media To &Disk"), this, SLOT(downloadMediaToDisk())); #endif } diff --git a/src/lib/webengine/webview.h b/src/lib/webengine/webview.h index a4865edad..11ab01e35 100644 --- a/src/lib/webengine/webview.h +++ b/src/lib/webengine/webview.h @@ -117,7 +117,9 @@ protected slots: void openUrlInNewWindow(); void sendLinkByMail(); void copyLinkToClipboard(); - void downloadUrlToDisk(); + void downloadLinkToDisk(); + void downloadImageToDisk(); + void downloadMediaToDisk(); void openActionUrl(); void showSiteInfo(); void searchSelectedText();