diff options
author | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2015-07-03 16:09:46 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2015-07-06 16:53:16 +0000 |
commit | 934d63d395684626cdfc2fc1170d7424955e7cd7 (patch) | |
tree | d31438d66725ce121f67030ce4999c1ea52d3041 /src/webenginewidgets/api | |
parent | 9b70ebd22d58a89ca605f1f7ea602148b183055f (diff) |
add Download*ToDisk web actions
Add the web actions DownloadLinkToDisk, DownloadImageToDisk and
DownloadMediaToDisk.
Change-Id: If6c9c8a3f4b95ad3032cff71ffc53a48be26e083
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 21 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index ad007dc87..1de94bc6b 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -528,12 +528,18 @@ QAction *QWebEnginePage::action(WebAction action) const case CopyLinkToClipboard: text = tr("Copy Link URL"); break; + case DownloadLinkToDisk: + text = tr("Save Link..."); + break; case CopyImageToClipboard: text = tr("Copy Image"); break; case CopyImageUrlToClipboard: text = tr("Copy Image URL"); break; + case DownloadImageToDisk: + text = tr("Save Image"); + break; case CopyMediaUrlToClipboard: text = tr("Copy Media URL"); break; @@ -549,6 +555,9 @@ QAction *QWebEnginePage::action(WebAction action) const case ToggleMediaMute: text = tr("Toggle Mute"); break; + case DownloadMediaToDisk: + text = tr("Download Media"); + break; default: break; } @@ -636,6 +645,10 @@ void QWebEnginePage::triggerAction(WebAction action, bool) qApp->clipboard()->setMimeData(data); } break; + case DownloadLinkToDisk: + if (d->m_menuData.linkUrl.isValid()) + d->adapter->download(d->m_menuData.linkUrl, d->m_menuData.suggestedFileName); + break; case CopyImageToClipboard: if (d->m_menuData.hasImageContent && (d->m_menuData.mediaType == WebEngineContextMenuData::MediaTypeImage || @@ -658,6 +671,11 @@ void QWebEnginePage::triggerAction(WebAction action, bool) qApp->clipboard()->setMimeData(data); } break; + case DownloadImageToDisk: + case DownloadMediaToDisk: + if (d->m_menuData.mediaUrl.isValid()) + d->adapter->download(d->m_menuData.mediaUrl, d->m_menuData.suggestedFileName); + break; case CopyMediaUrlToClipboard: if (d->m_menuData.mediaUrl.isValid() && (d->m_menuData.mediaType == WebEngineContextMenuData::MediaTypeAudio || @@ -848,6 +866,7 @@ QMenu *QWebEnginePage::createStandardContextMenu() action = QWebEnginePage::action(OpenLinkInThisWindow); action->setText(tr("Follow Link")); menu->addAction(action); + menu->addAction(QWebEnginePage::action(DownloadLinkToDisk)); } if (contextMenuData.selectedText.isEmpty()) { action = new QAction(QIcon::fromTheme(QStringLiteral("go-previous")), tr("&Back"), menu); @@ -873,6 +892,7 @@ QMenu *QWebEnginePage::createStandardContextMenu() if (contextMenuData.mediaUrl.isValid()) { switch (contextMenuData.mediaType) { case WebEngineContextMenuData::MediaTypeImage: + menu->addAction(QWebEnginePage::action(DownloadImageToDisk)); menu->addAction(QWebEnginePage::action(CopyImageUrlToClipboard)); // no break case WebEngineContextMenuData::MediaTypeCanvas: @@ -880,6 +900,7 @@ QMenu *QWebEnginePage::createStandardContextMenu() break; case WebEngineContextMenuData::MediaTypeAudio: case WebEngineContextMenuData::MediaTypeVideo: + menu->addAction(QWebEnginePage::action(DownloadMediaToDisk)); menu->addAction(QWebEnginePage::action(CopyMediaUrlToClipboard)); menu->addAction(QWebEnginePage::action(ToggleMediaPlayPause)); menu->addAction(QWebEnginePage::action(ToggleMediaLoop)); diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 16b33a196..f4d0cd18d 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -92,15 +92,18 @@ public: OpenLinkInNewWindow, OpenLinkInNewTab, CopyLinkToClipboard, + DownloadLinkToDisk, CopyImageToClipboard, CopyImageUrlToClipboard, + DownloadImageToDisk, CopyMediaUrlToClipboard, ToggleMediaControls, ToggleMediaLoop, ToggleMediaPlayPause, ToggleMediaMute, + DownloadMediaToDisk, WebActionCount }; |