diff options
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 238 |
1 files changed, 133 insertions, 105 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 7b875bf55..4bf957c3b 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -41,7 +41,6 @@ #include "qquickwebengineview_p_p.h" #include "authentication_dialog_controller.h" #include "profile_adapter.h" -#include "certificate_error_controller.h" #include "file_picker_controller.h" #include "find_text_helper.h" #include "javascript_dialog_controller.h" @@ -50,9 +49,7 @@ #include "qquickwebengineaction_p.h" #include "qquickwebengineaction_p_p.h" #include "qquickwebenginehistory_p.h" -#include "qquickwebenginecertificateerror_p.h" #include "qquickwebengineclientcertificateselection_p.h" -#include "qquickwebenginecontextmenurequest_p.h" #include "qquickwebenginedialogrequests_p.h" #include "qquickwebenginefaviconprovider_p_p.h" #include "qquickwebengineloadrequest_p.h" @@ -62,6 +59,7 @@ #include "qquickwebenginesettings_p.h" #include "qquickwebenginescript_p.h" #include "qquickwebenginetouchhandleprovider_p_p.h" +#include "qwebenginecertificateerror.h" #include "qwebenginefindtextresult.h" #include "qwebenginequotarequest.h" #include "qwebengineregisterprotocolhandlerrequest.h" @@ -98,7 +96,6 @@ #include <QTimer> #include <QtGui/private/qguiapplication_p.h> #include <QtGui/qpa/qplatformintegration.h> - QT_BEGIN_NAMESPACE using namespace QtWebEngineCore; @@ -135,6 +132,7 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate() , m_zoomFactor(1.0) , m_ui2Enabled(false) , m_profileInitialized(false) + , m_contextMenuRequest(nullptr) { memset(actions, 0, sizeof(actions)); @@ -229,13 +227,15 @@ RenderWidgetHostViewQtDelegate *QQuickWebEngineViewPrivate::CreateRenderWidgetHo return quickDelegate; } -void QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenuData &data) +void QQuickWebEngineViewPrivate::contextMenuRequested(QWebEngineContextMenuRequest *request) { Q_Q(QQuickWebEngineView); - m_contextMenuData = data; + m_contextMenuRequest = request; - QQuickWebEngineContextMenuRequest *request = new QQuickWebEngineContextMenuRequest(data); + // FIXME: we most liekly do not need to make any copy here + auto *r = new QWebEngineContextMenuRequest( + new QWebEngineContextMenuRequestPrivate(*request->d.data())); QQmlEngine *engine = qmlEngine(q); // TODO: this is a workaround for QTBUG-65044 @@ -243,19 +243,19 @@ void QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu return; // mark the object for gc by creating temporary jsvalue - engine->newQObject(request); - Q_EMIT q->contextMenuRequested(request); + engine->newQObject(r); + Q_EMIT q->contextMenuRequested(r); - if (request->isAccepted()) + if (r->isAccepted()) return; // Assign the WebEngineView as the parent of the menu, so mouse events are properly propagated // on OSX. - QObject *menu = ui()->addMenu(q, QString(), data.position()); + QObject *menu = ui()->addMenu(q, QString(), r->position()); if (!menu) return; - QQuickContextMenuBuilder contextMenuBuilder(data, q, menu); + QQuickContextMenuBuilder contextMenuBuilder(r, q, menu); // Populate our menu contextMenuBuilder.initMenu(); @@ -290,21 +290,14 @@ void QQuickWebEngineViewPrivate::javascriptDialog(QSharedPointer<JavaScriptDialo ui()->showDialog(dialog); } -void QQuickWebEngineViewPrivate::allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController) +void QQuickWebEngineViewPrivate::allowCertificateError(const QWebEngineCertificateError &error) { Q_Q(QQuickWebEngineView); - - QQuickWebEngineCertificateError *quickController = new QQuickWebEngineCertificateError(errorController); - // mark the object for gc by creating temporary jsvalue - qmlEngine(q)->newQObject(quickController); - Q_EMIT q->certificateError(quickController); - if (!quickController->overridable() || (!quickController->deferred() && !quickController->answered())) - quickController->rejectCertificate(); - else - m_certificateErrorControllers.append(errorController); + Q_EMIT q->certificateError(error); } -void QQuickWebEngineViewPrivate::selectClientCert(const QSharedPointer<ClientCertSelectController> &controller) +void QQuickWebEngineViewPrivate::selectClientCert( + const QSharedPointer<QtWebEngineCore::ClientCertSelectController> &controller) { #if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0) Q_Q(QQuickWebEngineView); @@ -468,7 +461,6 @@ void QQuickWebEngineViewPrivate::loadStarted(const QUrl &provisionalUrl, bool is isLoading = true; m_history->reset(); - m_certificateErrorControllers.clear(); QTimer::singleShot(0, q, [q, provisionalUrl]() { QQuickWebEngineLoadRequest loadRequest(provisionalUrl, QQuickWebEngineView::LoadStartedStatus); @@ -482,11 +474,29 @@ void QQuickWebEngineViewPrivate::loadCommitted() m_history->reset(); } -void QQuickWebEngineViewPrivate::loadVisuallyCommitted() +void QQuickWebEngineViewPrivate::didFirstVisuallyNonEmptyPaint() { #if QT_CONFIG(webengine_testsupport) - if (m_testSupport) - Q_EMIT m_testSupport->loadVisuallyCommitted(); + if (m_loadVisuallyCommittedState == NotCommitted) { + m_loadVisuallyCommittedState = DidFirstVisuallyNonEmptyPaint; + } else if (m_loadVisuallyCommittedState == DidFirstCompositorFrameSwap) { + if (m_testSupport) + Q_EMIT m_testSupport->loadVisuallyCommitted(); + m_loadVisuallyCommittedState = NotCommitted; + } +#endif +} + +void QQuickWebEngineViewPrivate::didCompositorFrameSwap() +{ +#if QT_CONFIG(webengine_testsupport) + if (m_loadVisuallyCommittedState == NotCommitted) { + m_loadVisuallyCommittedState = DidFirstCompositorFrameSwap; + } else if (m_loadVisuallyCommittedState == DidFirstVisuallyNonEmptyPaint) { + if (m_testSupport) + Q_EMIT m_testSupport->loadVisuallyCommitted(); + m_loadVisuallyCommittedState = NotCommitted; + } #endif } @@ -1554,7 +1564,7 @@ void QQuickWebEngineView::setWebChannel(QQmlWebChannel *webChannel) d->adapter->setWebChannel(webChannel, d->m_webChannelWorld); Q_EMIT webChannelChanged(); #else - Q_UNUSED(webChannel) + Q_UNUSED(webChannel); qWarning("WebEngine compiled without webchannel support"); #endif } @@ -1576,7 +1586,7 @@ void QQuickWebEngineView::setWebChannelWorld(uint webChannelWorld) d->adapter->setWebChannel(d->m_webChannel, d->m_webChannelWorld); Q_EMIT webChannelWorldChanged(webChannelWorld); #else - Q_UNUSED(webChannelWorld) + Q_UNUSED(webChannelWorld); qWarning("WebEngine compiled without webchannel support"); #endif } @@ -1700,9 +1710,9 @@ void QQuickWebEngineView::fullScreenCancelled() d->adapter->exitFullScreen(); } -void QQuickWebEngineView::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) +void QQuickWebEngineView::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) { - QQuickItem::geometryChanged(newGeometry, oldGeometry); + QQuickItem::geometryChange(newGeometry, oldGeometry); Q_D(QQuickWebEngineView); if (d->widget) d->widget->setSize(newGeometry.size()); @@ -1720,16 +1730,16 @@ void QQuickWebEngineView::itemChange(ItemChange change, const ItemChangeData &va } #if QT_CONFIG(draganddrop) -static QPoint mapToScreen(const QQuickItem *item, const QPoint &clientPos) +static QPointF mapToScreen(const QQuickItem *item, const QPointF &clientPos) { - return item->window()->position() + item->mapToScene(clientPos).toPoint(); + return item->window()->position() + item->mapToScene(clientPos); } void QQuickWebEngineView::dragEnterEvent(QDragEnterEvent *e) { Q_D(QQuickWebEngineView); e->accept(); - d->adapter->enterDrag(e, mapToScreen(this, e->pos())); + d->adapter->enterDrag(e, mapToScreen(this, e->position())); } void QQuickWebEngineView::dragLeaveEvent(QDragLeaveEvent *e) @@ -1742,7 +1752,7 @@ void QQuickWebEngineView::dragLeaveEvent(QDragLeaveEvent *e) void QQuickWebEngineView::dragMoveEvent(QDragMoveEvent *e) { Q_D(QQuickWebEngineView); - Qt::DropAction dropAction = d->adapter->updateDragPosition(e, mapToScreen(this, e->pos())); + Qt::DropAction dropAction = d->adapter->updateDragPosition(e, mapToScreen(this, e->position())); if (Qt::IgnoreAction == dropAction) { e->ignore(); } else { @@ -1755,7 +1765,7 @@ void QQuickWebEngineView::dropEvent(QDropEvent *e) { Q_D(QQuickWebEngineView); e->accept(); - d->adapter->endDragging(e, mapToScreen(this, e->pos())); + d->adapter->endDragging(e, mapToScreen(this, e->position())); } #endif // QT_CONFIG(draganddrop) @@ -1803,32 +1813,33 @@ void QQuickWebEngineView::triggerWebAction(WebAction action) d->adapter->unselect(); break; case OpenLinkInThisWindow: - if (d->m_contextMenuData.linkUrl().isValid()) - setUrl(d->m_contextMenuData.linkUrl()); + if (d->m_contextMenuRequest->filteredLinkUrl().isValid()) + setUrl(d->m_contextMenuRequest->filteredLinkUrl()); break; case OpenLinkInNewWindow: - if (d->m_contextMenuData.linkUrl().isValid()) { + if (d->m_contextMenuRequest->filteredLinkUrl().isValid()) { QQuickWebEngineNewViewRequest request; - request.m_requestedUrl = d->m_contextMenuData.linkUrl(); + request.m_requestedUrl = d->m_contextMenuRequest->filteredLinkUrl(); request.m_isUserInitiated = true; request.m_destination = NewViewInWindow; Q_EMIT newViewRequested(&request); } break; case OpenLinkInNewTab: - if (d->m_contextMenuData.linkUrl().isValid()) { + if (d->m_contextMenuRequest->filteredLinkUrl().isValid()) { QQuickWebEngineNewViewRequest request; - request.m_requestedUrl = d->m_contextMenuData.linkUrl(); + request.m_requestedUrl = d->m_contextMenuRequest->filteredLinkUrl(); request.m_isUserInitiated = true; request.m_destination = NewViewInBackgroundTab; Q_EMIT newViewRequested(&request); } break; case CopyLinkToClipboard: - if (!d->m_contextMenuData.unfilteredLinkUrl().isEmpty()) { - QString urlString = d->m_contextMenuData.unfilteredLinkUrl().toString(QUrl::FullyEncoded); - QString linkText = d->m_contextMenuData.linkText().toHtmlEscaped(); - QString title = d->m_contextMenuData.titleText(); + if (!d->m_contextMenuRequest->linkUrl().isEmpty()) { + QString urlString = + d->m_contextMenuRequest->linkUrl().toString(QUrl::FullyEncoded); + QString linkText = d->m_contextMenuRequest->linkText().toHtmlEscaped(); + QString title = d->m_contextMenuRequest->titleText(); if (!title.isEmpty()) title = QStringLiteral(" title=\"%1\"").arg(title.toHtmlEscaped()); QMimeData *data = new QMimeData(); @@ -1836,99 +1847,118 @@ void QQuickWebEngineView::triggerWebAction(WebAction action) QString html = QStringLiteral("<a href=\"") + urlString + QStringLiteral("\"") + title + QStringLiteral(">") + linkText + QStringLiteral("</a>"); data->setHtml(html); - data->setUrls(QList<QUrl>() << d->m_contextMenuData.unfilteredLinkUrl()); + data->setUrls(QList<QUrl>() << d->m_contextMenuRequest->linkUrl()); qApp->clipboard()->setMimeData(data); } break; case DownloadLinkToDisk: - if (d->m_contextMenuData.linkUrl().isValid()) - d->adapter->download(d->m_contextMenuData.linkUrl(), d->m_contextMenuData.suggestedFileName(), - d->m_contextMenuData.referrerUrl(), d->m_contextMenuData.referrerPolicy()); + if (d->m_contextMenuRequest->filteredLinkUrl().isValid()) + d->adapter->download(d->m_contextMenuRequest->filteredLinkUrl(), + d->m_contextMenuRequest->suggestedFileName(), + d->m_contextMenuRequest->referrerUrl(), + d->m_contextMenuRequest->referrerPolicy()); break; case CopyImageToClipboard: - if (d->m_contextMenuData.hasImageContent() && - (d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeImage || - d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeCanvas)) - { - d->adapter->copyImageAt(d->m_contextMenuData.position()); + if (d->m_contextMenuRequest->hasImageContent() + && (d->m_contextMenuRequest->mediaType() == QWebEngineContextMenuRequest::MediaTypeImage + || d->m_contextMenuRequest->mediaType() + == QWebEngineContextMenuRequest::MediaTypeCanvas)) { + d->adapter->copyImageAt(d->m_contextMenuRequest->position()); } break; case CopyImageUrlToClipboard: - if (d->m_contextMenuData.mediaUrl().isValid() && d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeImage) { - QString urlString = d->m_contextMenuData.mediaUrl().toString(QUrl::FullyEncoded); - QString alt = d->m_contextMenuData.altText(); + if (d->m_contextMenuRequest->mediaUrl().isValid() + && d->m_contextMenuRequest->mediaType() + == QWebEngineContextMenuRequest::MediaTypeImage) { + QString urlString = d->m_contextMenuRequest->mediaUrl().toString(QUrl::FullyEncoded); + QString alt = d->m_contextMenuRequest->altText(); if (!alt.isEmpty()) alt = QStringLiteral(" alt=\"%1\"").arg(alt.toHtmlEscaped()); - QString title = d->m_contextMenuData.titleText(); + QString title = d->m_contextMenuRequest->titleText(); if (!title.isEmpty()) title = QStringLiteral(" title=\"%1\"").arg(title.toHtmlEscaped()); QMimeData *data = new QMimeData(); data->setText(urlString); QString html = QStringLiteral("<img src=\"") + urlString + QStringLiteral("\"") + title + alt + QStringLiteral("></img>"); data->setHtml(html); - data->setUrls(QList<QUrl>() << d->m_contextMenuData.mediaUrl()); + data->setUrls(QList<QUrl>() << d->m_contextMenuRequest->mediaUrl()); qApp->clipboard()->setMimeData(data); } break; case DownloadImageToDisk: case DownloadMediaToDisk: - if (d->m_contextMenuData.mediaUrl().isValid()) - d->adapter->download(d->m_contextMenuData.mediaUrl(), d->m_contextMenuData.suggestedFileName(), - d->m_contextMenuData.referrerUrl(), d->m_contextMenuData.referrerPolicy()); + if (d->m_contextMenuRequest->mediaUrl().isValid()) + d->adapter->download(d->m_contextMenuRequest->mediaUrl(), + d->m_contextMenuRequest->suggestedFileName(), + d->m_contextMenuRequest->referrerUrl(), + d->m_contextMenuRequest->referrerPolicy()); break; case CopyMediaUrlToClipboard: - if (d->m_contextMenuData.mediaUrl().isValid() && - (d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeAudio || - d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeVideo)) - { - QString urlString = d->m_contextMenuData.mediaUrl().toString(QUrl::FullyEncoded); - QString title = d->m_contextMenuData.titleText(); + if (d->m_contextMenuRequest->mediaUrl().isValid() + && (d->m_contextMenuRequest->mediaType() == QWebEngineContextMenuRequest::MediaTypeAudio + || d->m_contextMenuRequest->mediaType() + == QWebEngineContextMenuRequest::MediaTypeVideo)) { + QString urlString = d->m_contextMenuRequest->mediaUrl().toString(QUrl::FullyEncoded); + QString title = d->m_contextMenuRequest->titleText(); if (!title.isEmpty()) title = QStringLiteral(" title=\"%1\"").arg(title.toHtmlEscaped()); QMimeData *data = new QMimeData(); data->setText(urlString); - if (d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeAudio) + if (d->m_contextMenuRequest->mediaType() + == QWebEngineContextMenuRequest::MediaTypeAudio) data->setHtml(QStringLiteral("<audio src=\"") + urlString + QStringLiteral("\"") + title + QStringLiteral("></audio>")); else data->setHtml(QStringLiteral("<video src=\"") + urlString + QStringLiteral("\"") + title + QStringLiteral("></video>")); - data->setUrls(QList<QUrl>() << d->m_contextMenuData.mediaUrl()); + data->setUrls(QList<QUrl>() << d->m_contextMenuRequest->mediaUrl()); qApp->clipboard()->setMimeData(data); } break; case ToggleMediaControls: - if (d->m_contextMenuData.mediaUrl().isValid() && d->m_contextMenuData.mediaFlags() & WebEngineContextMenuData::MediaCanToggleControls) { - bool enable = !(d->m_contextMenuData.mediaFlags() & WebEngineContextMenuData::MediaControls); - d->adapter->executeMediaPlayerActionAt(d->m_contextMenuData.position(), WebContentsAdapter::MediaPlayerControls, enable); + if (d->m_contextMenuRequest->mediaUrl().isValid() + && d->m_contextMenuRequest->mediaFlags() + & QWebEngineContextMenuRequest::MediaCanToggleControls) { + bool enable = !(d->m_contextMenuRequest->mediaFlags() + & QWebEngineContextMenuRequest::MediaControls); + d->adapter->executeMediaPlayerActionAt(d->m_contextMenuRequest->position(), + WebContentsAdapter::MediaPlayerControls, enable); } break; case ToggleMediaLoop: - if (d->m_contextMenuData.mediaUrl().isValid() && - (d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeAudio || - d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeVideo)) - { - bool enable = !(d->m_contextMenuData.mediaFlags() & WebEngineContextMenuData::MediaLoop); - d->adapter->executeMediaPlayerActionAt(d->m_contextMenuData.position(), WebContentsAdapter::MediaPlayerLoop, enable); + if (d->m_contextMenuRequest->mediaUrl().isValid() + && (d->m_contextMenuRequest->mediaType() == QWebEngineContextMenuRequest::MediaTypeAudio + || d->m_contextMenuRequest->mediaType() + == QWebEngineContextMenuRequest::MediaTypeVideo)) { + bool enable = !(d->m_contextMenuRequest->mediaFlags() + & QWebEngineContextMenuRequest::MediaLoop); + d->adapter->executeMediaPlayerActionAt(d->m_contextMenuRequest->position(), + WebContentsAdapter::MediaPlayerLoop, enable); } break; case ToggleMediaPlayPause: - if (d->m_contextMenuData.mediaUrl().isValid() && - (d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeAudio || - d->m_contextMenuData.mediaType() == WebEngineContextMenuData::MediaTypeVideo)) - { - bool enable = (d->m_contextMenuData.mediaFlags() & WebEngineContextMenuData::MediaPaused); - d->adapter->executeMediaPlayerActionAt(d->m_contextMenuData.position(), WebContentsAdapter::MediaPlayerPlay, enable); + if (d->m_contextMenuRequest->mediaUrl().isValid() + && (d->m_contextMenuRequest->mediaType() == QWebEngineContextMenuRequest::MediaTypeAudio + || d->m_contextMenuRequest->mediaType() + == QWebEngineContextMenuRequest::MediaTypeVideo)) { + bool enable = (d->m_contextMenuRequest->mediaFlags() + & QWebEngineContextMenuRequest::MediaPaused); + d->adapter->executeMediaPlayerActionAt(d->m_contextMenuRequest->position(), + WebContentsAdapter::MediaPlayerPlay, enable); } break; case ToggleMediaMute: - if (d->m_contextMenuData.mediaUrl().isValid() && d->m_contextMenuData.mediaFlags() & WebEngineContextMenuData::MediaHasAudio) { - bool enable = !(d->m_contextMenuData.mediaFlags() & WebEngineContextMenuData::MediaMuted); - d->adapter->executeMediaPlayerActionAt(d->m_contextMenuData.position(), WebContentsAdapter::MediaPlayerMute, enable); + if (d->m_contextMenuRequest->mediaUrl().isValid() + && d->m_contextMenuRequest->mediaFlags() + & QWebEngineContextMenuRequest::MediaHasAudio) { + bool enable = !(d->m_contextMenuRequest->mediaFlags() + & QWebEngineContextMenuRequest::MediaMuted); + d->adapter->executeMediaPlayerActionAt(d->m_contextMenuRequest->position(), + WebContentsAdapter::MediaPlayerMute, enable); } break; case InspectElement: - d->adapter->inspectElementAt(d->m_contextMenuData.position()); + d->adapter->inspectElementAt(d->m_contextMenuRequest->position()); break; case ExitFullScreen: d->adapter->exitFullScreen(); @@ -2281,12 +2311,9 @@ void QQuickWebEngineFullScreenRequest::reject() m_viewPrivate->setFullScreenMode(!m_toggleOn); } -QQuickContextMenuBuilder::QQuickContextMenuBuilder(const QtWebEngineCore::WebEngineContextMenuData &data, - QQuickWebEngineView *view, - QObject *menu) - : QtWebEngineCore::RenderViewContextMenuQt(data) - , m_view(view) - , m_menu(menu) +QQuickContextMenuBuilder::QQuickContextMenuBuilder(QWebEngineContextMenuRequest *request, + QQuickWebEngineView *view, QObject *menu) + : QtWebEngineCore::RenderViewContextMenuQt(request), m_view(view), m_menu(menu) { } @@ -2394,9 +2421,9 @@ void QQuickContextMenuBuilder::addMenuItem(ContextMenuItem menuItem) case ContextMenuItem::SpellingSuggestions: { QPointer<QQuickWebEngineView> thisRef(m_view); - for (int i=0; i < m_contextData.spellCheckerSuggestions().count() && i < 4; i++) { + for (int i = 0; i < m_contextData->spellCheckerSuggestions().count() && i < 4; i++) { action = new QQuickWebEngineAction(m_menu); - QString replacement = m_contextData.spellCheckerSuggestions().at(i); + QString replacement = m_contextData->spellCheckerSuggestions().at(i); QObject::connect(action, &QQuickWebEngineAction::triggered, [thisRef, replacement] { thisRef->replaceMisspelledWord(replacement); }); m_view->d_ptr->ui()->addMenuItem(action, m_menu); } @@ -2421,19 +2448,19 @@ bool QQuickContextMenuBuilder::isMenuItemEnabled(ContextMenuItem menuItem) case ContextMenuItem::Reload: return true; case ContextMenuItem::Cut: - return m_contextData.editFlags() & QtWebEngineCore::WebEngineContextMenuData::CanCut; + return m_contextData->editFlags() & QWebEngineContextMenuRequest::CanCut; case ContextMenuItem::Copy: - return m_contextData.editFlags() & QtWebEngineCore::WebEngineContextMenuData::CanCopy; + return m_contextData->editFlags() & QWebEngineContextMenuRequest::CanCopy; case ContextMenuItem::Paste: - return m_contextData.editFlags() & QtWebEngineCore::WebEngineContextMenuData::CanPaste; + return m_contextData->editFlags() & QWebEngineContextMenuRequest::CanPaste; case ContextMenuItem::Undo: - return m_contextData.editFlags() & QtWebEngineCore::WebEngineContextMenuData::CanUndo; + return m_contextData->editFlags() & QWebEngineContextMenuRequest::CanUndo; case ContextMenuItem::Redo: - return m_contextData.editFlags() & QtWebEngineCore::WebEngineContextMenuData::CanRedo; + return m_contextData->editFlags() & QWebEngineContextMenuRequest::CanRedo; case ContextMenuItem::SelectAll: - return m_contextData.editFlags() & QtWebEngineCore::WebEngineContextMenuData::CanSelectAll; + return m_contextData->editFlags() & QWebEngineContextMenuRequest::CanSelectAll; case ContextMenuItem::PasteAndMatchStyle: - return m_contextData.editFlags() & QtWebEngineCore::WebEngineContextMenuData::CanPaste; + return m_contextData->editFlags() & QWebEngineContextMenuRequest::CanPaste; case ContextMenuItem::OpenLinkInNewWindow: case ContextMenuItem::OpenLinkInNewTab: case ContextMenuItem::CopyLinkToClipboard: @@ -2498,3 +2525,4 @@ void QQuickWebEngineTouchHandle::setOpacity(float opacity) QT_END_NAMESPACE +#include "moc_qquickwebengineview_p.cpp" |