summaryrefslogtreecommitdiff
path: root/src/webenginewidgets/api/qwebengineview.cpp
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2020-10-16 12:15:51 +0200
committerMichal Klocek <michal.klocek@qt.io>2020-11-24 09:45:04 +0100
commit2fbe10a115fb0f5f50efe192d554fb7d1c988884 (patch)
treea8dc909c7457a9f0570b8f856c007db567dea25d /src/webenginewidgets/api/qwebengineview.cpp
parente7d3d03a7540c2fa5ac1ba88eddec6135c4ab9ab (diff)
downloadqtwebengine-2fbe10a115fb0f5f50efe192d554fb7d1c988884.tar.gz
Drop dependency on QWebEngineView in page
Introduce temporarily PageView interface and DummyDelegate. Change-Id: I3a3d57435c98b31a15fb6d777045e141d007486f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webenginewidgets/api/qwebengineview.cpp')
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp83
1 files changed, 79 insertions, 4 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 934991cbe..2b5b2414c 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -78,6 +78,7 @@
# include <QMessageBox>
#endif
#include <QStyle>
+#include <QGuiApplication>
QT_BEGIN_NAMESPACE
@@ -306,6 +307,26 @@ bool QWebEngineViewPrivate::javaScriptPrompt(const QUrl &url, const QString &msg
#endif // QT_CONFIG(inputdialog)
}
+void QWebEngineViewPrivate::focusContainer()
+{
+ Q_Q(QWebEngineView);
+ q->activateWindow();
+ q->setFocus();
+}
+
+void QWebEngineViewPrivate::unhandledKeyEvent(QKeyEvent *event)
+{
+ Q_Q(QWebEngineView);
+ if (q->parentWidget())
+ QGuiApplication::sendEvent(q->parentWidget(), event);
+}
+
+bool QWebEngineViewPrivate::passOnFocus(bool reverse)
+{
+ Q_Q(QWebEngineView);
+ return q->focusNextPrevChild(!reverse);
+}
+
#ifndef QT_NO_ACCESSIBILITY
static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object)
{
@@ -323,9 +344,13 @@ QWebEngineViewPrivate::QWebEngineViewPrivate()
#endif // QT_NO_ACCESSIBILITY
}
+QWebEngineViewPrivate::~QWebEngineViewPrivate() = default;
+
void QWebEngineViewPrivate::bindPageAndView(QWebEnginePage *page, QWebEngineView *view)
{
- auto oldView = page ? page->d_func()->view : nullptr;
+ QWebEngineViewPrivate *v =
+ page ? static_cast<QWebEngineViewPrivate *>(page->d_func()->view) : nullptr;
+ auto oldView = v ? v->q_func() : nullptr;
auto oldPage = view ? view->d_func()->page : nullptr;
bool ownNewPage = false;
@@ -339,7 +364,7 @@ void QWebEngineViewPrivate::bindPageAndView(QWebEnginePage *page, QWebEngineView
oldView->d_func()->page = nullptr;
oldView->d_func()->m_ownsPage = false;
}
- page->d_func()->view = view;
+ page->d_func()->view = view ? view->d_func() : nullptr;
}
if (view && oldPage != page) {
@@ -399,12 +424,12 @@ void QWebEngineViewPrivate::bindPageAndWidget(
if (widget && oldPage != page && oldPage && oldPage->d_func()) {
if (auto oldView = oldPage->d_func()->view)
- oldView->d_func()->widgetChanged(widget, nullptr);
+ static_cast<QWebEngineViewPrivate *>(oldView)->widgetChanged(widget, nullptr);
}
if (page && oldWidget != widget) {
if (auto view = page->d_func()->view)
- view->d_func()->widgetChanged(oldWidget, widget);
+ static_cast<QWebEngineViewPrivate *>(view)->widgetChanged(oldWidget, widget);
}
}
@@ -435,6 +460,56 @@ QIcon QWebEngineViewPrivate::webActionIcon(QWebEnginePage::WebAction action)
}
return icon;
}
+
+QWebEnginePage *QWebEngineViewPrivate::createPageForWindow(QWebEnginePage::WebWindowType type)
+{
+ Q_Q(QWebEngineView);
+ QWebEngineView *newView = q->createWindow(type);
+ if (newView)
+ return newView->page();
+ return nullptr;
+}
+
+void QWebEngineViewPrivate::setToolTip(const QString &toolTipText)
+{
+ Q_Q(QWebEngineView);
+ q->setToolTip(toolTipText);
+}
+
+bool QWebEngineViewPrivate::isEnabled() const
+{
+ Q_Q(const QWebEngineView);
+ return q->isEnabled();
+}
+
+QObject *QWebEngineViewPrivate::accessibilityParentObject()
+{
+ Q_Q(QWebEngineView);
+ return q;
+}
+
+bool QWebEngineViewPrivate::isVisible() const
+{
+ Q_Q(const QWebEngineView);
+ return q->isVisible();
+}
+QRect QWebEngineViewPrivate::viewportRect() const
+{
+ Q_Q(const QWebEngineView);
+ return q->rect();
+}
+QtWebEngineCore::RenderWidgetHostViewQtDelegate *
+QWebEngineViewPrivate::CreateRenderWidgetHostViewQtDelegate(
+ QtWebEngineCore::RenderWidgetHostViewQtDelegateClient *client)
+{
+ Q_Q(QWebEngineView);
+ return new QtWebEngineCore::RenderWidgetHostViewQtDelegateWidget(client, q);
+}
+
+QWebEngineContextMenuRequest *QWebEngineViewPrivate::lastContextMenuRequest() const
+{
+ return m_contextRequest;
+}
/*!
\fn QWebEngineView::renderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus terminationStatus, int exitCode)
\since 5.6