summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api/qwebenginepage.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-06-26 15:28:31 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-06-26 15:30:24 +0200
commit6cdd1dc5b48dfe54de4d926fc9a64c46f3fc75f2 (patch)
treed4b626a6041cac6e17bbd825d139b201e708f43d /src/webenginewidgets/api/qwebenginepage.cpp
parent7757ec1a562ae36b65a6cae93b3cd308247755ef (diff)
parent6e019f2ad5a5d6341d14762fba5a245da46ebeb3 (diff)
Merge remote-tracking branch 'origin/5.11' into dev
Conflicts: .qmake.conf configure.json src/3rdparty tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp Change-Id: Id79ff6cf01c2db3a2044881ddcbf044abdf84936
Diffstat (limited to 'src/webenginewidgets/api/qwebenginepage.cpp')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp101
1 files changed, 51 insertions, 50 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 66a84e677..2c8f8de90 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -1243,7 +1243,7 @@ void QWebEnginePage::triggerAction(WebAction action, bool)
{
Q_D(QWebEnginePage);
d->ensureInitialized();
- const QtWebEngineCore::WebEngineContextMenuData &menuData = *d->contextData.d;
+ const QtWebEngineCore::WebEngineContextMenuData *menuData = d->contextData.d;
switch (action) {
case Back:
d->adapter->navigateToOffset(-1);
@@ -1285,125 +1285,126 @@ void QWebEnginePage::triggerAction(WebAction action, bool)
d->adapter->unselect();
break;
case OpenLinkInThisWindow:
- if (menuData.linkUrl().isValid())
- setUrl(menuData.linkUrl());
+ if (menuData && menuData->linkUrl().isValid())
+ setUrl(menuData->linkUrl());
break;
case OpenLinkInNewWindow:
- if (menuData.linkUrl().isValid()) {
+ if (menuData && menuData->linkUrl().isValid()) {
QWebEnginePage *newPage = createWindow(WebBrowserWindow);
if (newPage)
- newPage->setUrl(menuData.linkUrl());
+ newPage->setUrl(menuData->linkUrl());
}
break;
case OpenLinkInNewTab:
- if (menuData.linkUrl().isValid()) {
+ if (menuData && menuData->linkUrl().isValid()) {
QWebEnginePage *newPage = createWindow(WebBrowserTab);
if (newPage)
- newPage->setUrl(menuData.linkUrl());
+ newPage->setUrl(menuData->linkUrl());
}
break;
case OpenLinkInNewBackgroundTab:
- if (menuData.linkUrl().isValid()) {
+ if (menuData && menuData->linkUrl().isValid()) {
QWebEnginePage *newPage = createWindow(WebBrowserBackgroundTab);
if (newPage)
- newPage->setUrl(menuData.linkUrl());
+ newPage->setUrl(menuData->linkUrl());
}
break;
case CopyLinkToClipboard:
- if (!menuData.unfilteredLinkUrl().isEmpty()) {
- QString urlString = menuData.unfilteredLinkUrl().toString(QUrl::FullyEncoded);
- QString title = menuData.linkText().toHtmlEscaped();
+ if (menuData && !menuData->unfilteredLinkUrl().isEmpty()) {
+ QString urlString = menuData->unfilteredLinkUrl().toString(QUrl::FullyEncoded);
+ QString title = menuData->linkText().toHtmlEscaped();
QMimeData *data = new QMimeData();
data->setText(urlString);
QString html = QStringLiteral("<a href=\"") + urlString + QStringLiteral("\">") + title + QStringLiteral("</a>");
data->setHtml(html);
- data->setUrls(QList<QUrl>() << menuData.unfilteredLinkUrl());
+ data->setUrls(QList<QUrl>() << menuData->unfilteredLinkUrl());
qApp->clipboard()->setMimeData(data);
}
break;
case DownloadLinkToDisk:
- if (menuData.linkUrl().isValid())
- d->adapter->download(menuData.linkUrl(), menuData.suggestedFileName(),
- menuData.referrerUrl(), menuData.referrerPolicy());
+ if (menuData && menuData->linkUrl().isValid())
+ d->adapter->download(menuData->linkUrl(), menuData->suggestedFileName(),
+ menuData->referrerUrl(), menuData->referrerPolicy());
break;
case CopyImageToClipboard:
- if (menuData.hasImageContent() &&
- (menuData.mediaType() == WebEngineContextMenuData::MediaTypeImage ||
- menuData.mediaType() == WebEngineContextMenuData::MediaTypeCanvas))
+ if (menuData && menuData->hasImageContent() &&
+ (menuData->mediaType() == WebEngineContextMenuData::MediaTypeImage ||
+ menuData->mediaType() == WebEngineContextMenuData::MediaTypeCanvas))
{
- d->adapter->copyImageAt(menuData.position());
+ d->adapter->copyImageAt(menuData->position());
}
break;
case CopyImageUrlToClipboard:
- if (menuData.mediaUrl().isValid() && menuData.mediaType() == WebEngineContextMenuData::MediaTypeImage) {
- QString urlString = menuData.mediaUrl().toString(QUrl::FullyEncoded);
- QString title = menuData.linkText();
+ if (menuData && menuData->mediaUrl().isValid() && menuData->mediaType() == WebEngineContextMenuData::MediaTypeImage) {
+ QString urlString = menuData->mediaUrl().toString(QUrl::FullyEncoded);
+ QString title = menuData->linkText();
if (!title.isEmpty())
title = QStringLiteral(" alt=\"%1\"").arg(title.toHtmlEscaped());
QMimeData *data = new QMimeData();
data->setText(urlString);
QString html = QStringLiteral("<img src=\"") + urlString + QStringLiteral("\"") + title + QStringLiteral("></img>");
data->setHtml(html);
- data->setUrls(QList<QUrl>() << menuData.mediaUrl());
+ data->setUrls(QList<QUrl>() << menuData->mediaUrl());
qApp->clipboard()->setMimeData(data);
}
break;
case DownloadImageToDisk:
case DownloadMediaToDisk:
- if (menuData.mediaUrl().isValid())
- d->adapter->download(menuData.mediaUrl(), menuData.suggestedFileName(),
- menuData.referrerUrl(), menuData.referrerPolicy());
+ if (menuData && menuData->mediaUrl().isValid())
+ d->adapter->download(menuData->mediaUrl(), menuData->suggestedFileName(),
+ menuData->referrerUrl(), menuData->referrerPolicy());
break;
case CopyMediaUrlToClipboard:
- if (menuData.mediaUrl().isValid() &&
- (menuData.mediaType() == WebEngineContextMenuData::MediaTypeAudio ||
- menuData.mediaType() == WebEngineContextMenuData::MediaTypeVideo))
+ if (menuData && menuData->mediaUrl().isValid() &&
+ (menuData->mediaType() == WebEngineContextMenuData::MediaTypeAudio ||
+ menuData->mediaType() == WebEngineContextMenuData::MediaTypeVideo))
{
- QString urlString = menuData.mediaUrl().toString(QUrl::FullyEncoded);
+ QString urlString = menuData->mediaUrl().toString(QUrl::FullyEncoded);
QMimeData *data = new QMimeData();
data->setText(urlString);
- if (menuData.mediaType() == WebEngineContextMenuData::MediaTypeAudio)
+ if (menuData->mediaType() == WebEngineContextMenuData::MediaTypeAudio)
data->setHtml(QStringLiteral("<audio src=\"") + urlString + QStringLiteral("\"></audio>"));
else
data->setHtml(QStringLiteral("<video src=\"") + urlString + QStringLiteral("\"></video>"));
- data->setUrls(QList<QUrl>() << menuData.mediaUrl());
+ data->setUrls(QList<QUrl>() << menuData->mediaUrl());
qApp->clipboard()->setMimeData(data);
}
break;
case ToggleMediaControls:
- if (menuData.mediaUrl().isValid() && menuData.mediaFlags() & WebEngineContextMenuData::MediaCanToggleControls) {
- bool enable = !(menuData.mediaFlags() & WebEngineContextMenuData::MediaControls);
- d->adapter->executeMediaPlayerActionAt(menuData.position(), WebContentsAdapter::MediaPlayerControls, enable);
+ if (menuData && menuData->mediaUrl().isValid() && menuData->mediaFlags() & WebEngineContextMenuData::MediaCanToggleControls) {
+ bool enable = !(menuData->mediaFlags() & WebEngineContextMenuData::MediaControls);
+ d->adapter->executeMediaPlayerActionAt(menuData->position(), WebContentsAdapter::MediaPlayerControls, enable);
}
break;
case ToggleMediaLoop:
- if (menuData.mediaUrl().isValid() &&
- (menuData.mediaType() == WebEngineContextMenuData::MediaTypeAudio ||
- menuData.mediaType() == WebEngineContextMenuData::MediaTypeVideo))
+ if (menuData && menuData->mediaUrl().isValid() &&
+ (menuData->mediaType() == WebEngineContextMenuData::MediaTypeAudio ||
+ menuData->mediaType() == WebEngineContextMenuData::MediaTypeVideo))
{
- bool enable = !(menuData.mediaFlags() & WebEngineContextMenuData::MediaLoop);
- d->adapter->executeMediaPlayerActionAt(menuData.position(), WebContentsAdapter::MediaPlayerLoop, enable);
+ bool enable = !(menuData->mediaFlags() & WebEngineContextMenuData::MediaLoop);
+ d->adapter->executeMediaPlayerActionAt(menuData->position(), WebContentsAdapter::MediaPlayerLoop, enable);
}
break;
case ToggleMediaPlayPause:
- if (menuData.mediaUrl().isValid() &&
- (menuData.mediaType() == WebEngineContextMenuData::MediaTypeAudio ||
- menuData.mediaType() == WebEngineContextMenuData::MediaTypeVideo))
+ if (menuData && menuData->mediaUrl().isValid() &&
+ (menuData->mediaType() == WebEngineContextMenuData::MediaTypeAudio ||
+ menuData->mediaType() == WebEngineContextMenuData::MediaTypeVideo))
{
- bool enable = (menuData.mediaFlags() & WebEngineContextMenuData::MediaPaused);
- d->adapter->executeMediaPlayerActionAt(menuData.position(), WebContentsAdapter::MediaPlayerPlay, enable);
+ bool enable = (menuData->mediaFlags() & WebEngineContextMenuData::MediaPaused);
+ d->adapter->executeMediaPlayerActionAt(menuData->position(), WebContentsAdapter::MediaPlayerPlay, enable);
}
break;
case ToggleMediaMute:
- if (menuData.mediaUrl().isValid() && menuData.mediaFlags() & WebEngineContextMenuData::MediaHasAudio) {
+ if (menuData && menuData->mediaUrl().isValid() && menuData->mediaFlags() & WebEngineContextMenuData::MediaHasAudio) {
// Make sure to negate the value, so that toggling actually works.
- bool enable = !(menuData.mediaFlags() & WebEngineContextMenuData::MediaMuted);
- d->adapter->executeMediaPlayerActionAt(menuData.position(), WebContentsAdapter::MediaPlayerMute, enable);
+ bool enable = !(menuData->mediaFlags() & WebEngineContextMenuData::MediaMuted);
+ d->adapter->executeMediaPlayerActionAt(menuData->position(), WebContentsAdapter::MediaPlayerMute, enable);
}
break;
case InspectElement:
- d->adapter->inspectElementAt(menuData.position());
+ if (menuData)
+ d->adapter->inspectElementAt(menuData->position());
break;
case ExitFullScreen:
// See under ViewSource, anything that can trigger a delete of the current view is dangerous to call directly here.