summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-06-21 12:42:28 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-06-22 09:21:29 +0200
commit4495d477e0093933d711978da08b5a90afef08ff (patch)
tree5beabbe12435a779c4afc70bbadd834901df6052 /src/webenginewidgets/api
parent155dd36a56912fd4ab4b447db38073900e53fc67 (diff)
Cleanup item delegate logic
Remove two indirect values we can calculate without tracking, and clean up naming in webenginequick. Pick-to: 6.4 Change-Id: Ibfab7013f314b428dca707036fe5f027558dff72 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp44
-rw-r--r--src/webenginewidgets/api/qwebengineview_p.h2
2 files changed, 21 insertions, 25 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 9b8e72ce1..54a1ba0b1 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -142,15 +142,15 @@ public:
void Bind(WebContentsAdapterClient *client) override
{
- BindPage(static_cast<QWebEnginePagePrivate *>(client)->q_func());
+ BindPage(static_cast<QWebEnginePagePrivate *>(client));
}
- void BindPage(QWebEnginePage *page)
+ void BindPage(QWebEnginePagePrivate *page)
{
if (m_pageDestroyedConnection)
QObject::disconnect(m_pageDestroyedConnection);
QWebEngineViewPrivate::bindPageAndWidget(page, this);
- m_pageDestroyedConnection = QObject::connect(page, &QObject::destroyed, this, &WebEngineQuickWidget::UnbindPage);
+ m_pageDestroyedConnection = QObject::connect(page->q_ptr, &QObject::destroyed, this, &WebEngineQuickWidget::UnbindPage);
}
void UnbindPage()
@@ -723,7 +723,7 @@ void QWebEngineViewPrivate::bindPageAndView(QWebEnginePage *page, QWebEngineView
view->d_func()->pageChanged(nullptr, page);
if (!widget && page && page->d_func()->item) {
widget = new QtWebEngineCore::WebEngineQuickWidget(page->d_func()->item, nullptr);
- widget->BindPage(page);
+ widget->BindPage(page->d_func());
}
if (oldWidget != widget)
view->d_func()->widgetChanged(oldWidget, widget);
@@ -732,39 +732,35 @@ void QWebEngineViewPrivate::bindPageAndView(QWebEnginePage *page, QWebEngineView
delete oldPage;
}
-void QWebEngineViewPrivate::bindPageAndWidget(
- QWebEnginePage *page, QtWebEngineCore::WebEngineQuickWidget *widget)
+void QWebEngineViewPrivate::bindPageAndWidget(QWebEnginePagePrivate *pagePrivate,
+ QtWebEngineCore::WebEngineQuickWidget *widget)
{
- auto oldPage = (widget && widget->m_contentItem) ? widget->m_contentItem->m_page : nullptr;
- auto oldWidget = page ? static_cast<QtWebEngineCore::WebEngineQuickWidget *>(page->d_func()->widget) : nullptr;
+ auto oldAdapterClient = (widget && widget->m_contentItem) ? widget->m_contentItem->m_adapterClient : nullptr;
+ auto oldWidget = pagePrivate ? static_cast<QtWebEngineCore::WebEngineQuickWidget *>(pagePrivate->widget) : nullptr;
+
+ auto *oldPagePrivate = static_cast<QWebEnginePagePrivate *>(oldAdapterClient);
// Change pointers first.
- if (widget && oldPage != page) {
- if (oldPage && oldPage->d_func()) {
- oldPage->d_func()->widget = nullptr;
- oldPage->d_func()->item = nullptr;
- }
- if (widget->m_contentItem)
- widget->m_contentItem->m_page = page;
+ if (oldPagePrivate && oldPagePrivate != pagePrivate) {
+ oldPagePrivate->widget = nullptr;
+ oldPagePrivate->item = nullptr;
}
- if (page && oldWidget != widget) {
- if (oldWidget && oldWidget->m_contentItem)
- oldWidget->m_contentItem->m_page = nullptr;
- page->d_func()->widget = widget;
- page->d_func()->item = widget->m_contentItem;
+ if (pagePrivate && oldWidget != widget) {
+ pagePrivate->widget = widget;
+ pagePrivate->item = widget->m_contentItem;
}
// Then notify.
- if (widget && oldPage != page && oldPage && oldPage->d_func()) {
- if (auto oldView = oldPage->d_func()->view)
+ if (oldPagePrivate && oldPagePrivate != pagePrivate) {
+ if (auto oldView = oldPagePrivate->view)
static_cast<QWebEngineViewPrivate *>(oldView)->widgetChanged(widget, nullptr);
}
- if (page && oldWidget != widget) {
- if (auto view = page->d_func()->view)
+ if (pagePrivate && oldWidget != widget) {
+ if (auto view = pagePrivate->view)
static_cast<QWebEngineViewPrivate *>(view)->widgetChanged(oldWidget, widget);
}
}
diff --git a/src/webenginewidgets/api/qwebengineview_p.h b/src/webenginewidgets/api/qwebengineview_p.h
index 44eb32203..15644926f 100644
--- a/src/webenginewidgets/api/qwebengineview_p.h
+++ b/src/webenginewidgets/api/qwebengineview_p.h
@@ -111,7 +111,7 @@ public:
QWebEngineViewPrivate();
virtual ~QWebEngineViewPrivate();
static void bindPageAndView(QWebEnginePage *page, QWebEngineView *view);
- static void bindPageAndWidget(QWebEnginePage *page,
+ static void bindPageAndWidget(QWebEnginePagePrivate *pagePrivate,
QtWebEngineCore::WebEngineQuickWidget *widget);
QIcon webActionIcon(QWebEnginePage::WebAction action);
void unhandledKeyEvent(QKeyEvent *event) override;