summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@theqtcompany.com>2015-07-03 16:09:46 +0200
committerJoerg Bornemann <joerg.bornemann@theqtcompany.com>2015-07-06 16:53:16 +0000
commit934d63d395684626cdfc2fc1170d7424955e7cd7 (patch)
treed31438d66725ce121f67030ce4999c1ea52d3041 /src/webenginewidgets
parent9b70ebd22d58a89ca605f1f7ea602148b183055f (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')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp21
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h3
-rw-r--r--src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc3
3 files changed, 27 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
};
diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
index 3c47d97df..29e5d60ce 100644
--- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
@@ -110,6 +110,9 @@
\value ToggleMediaLoop Toggles whether the hovered audio or video should loop on completetion or not. (Added in Qt 5.6)
\value ToggleMediaPlayPause Toggles the play/pause state of the hovered audio or video element. (Added in Qt 5.6)
\value ToggleMediaMute Mutes or unmutes the hovered audio or video element. (Added in Qt 5.6)
+ \value DownloadLinkToDisk Download the current link to the disk. (Added in Qt 5.6)
+ \value DownloadImageToDisk Download the highlighted image to the disk. (Added in Qt 5.6)
+ \value DownloadMediaToDisk Download the hovered audio or video to the disk. (Added in Qt 5.6)
\omitvalue WebActionCount