diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-06-26 15:28:31 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-06-26 15:30:24 +0200 |
commit | 6cdd1dc5b48dfe54de4d926fc9a64c46f3fc75f2 (patch) | |
tree | d4b626a6041cac6e17bbd825d139b201e708f43d /src/webenginewidgets | |
parent | 7757ec1a562ae36b65a6cae93b3cd308247755ef (diff) | |
parent | 6e019f2ad5a5d6341d14762fba5a245da46ebeb3 (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')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 101 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qtwebenginewidgets-module.qdoc | 2 |
2 files changed, 52 insertions, 51 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. diff --git a/src/webenginewidgets/doc/src/qtwebenginewidgets-module.qdoc b/src/webenginewidgets/doc/src/qtwebenginewidgets-module.qdoc index 3da554a81..e4f259882 100644 --- a/src/webenginewidgets/doc/src/qtwebenginewidgets-module.qdoc +++ b/src/webenginewidgets/doc/src/qtwebenginewidgets-module.qdoc @@ -28,7 +28,7 @@ /*! \module QtWebEngineWidgets \title Qt WebEngine Widgets C++ Classes - \brief Provides C++ classes for rendering web content in a QWidget based application + \brief Provides C++ classes for rendering web content in a QWidget based application. \ingroup modules \ingroup qtwebengine-modules \qtvariable webenginewidgets |