From 3fd9d08bc24bc5f769677b411750d73801adc2d2 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 23 Jul 2021 10:24:23 +0200 Subject: Add QWebEnginePage::view() replacement Make it a static getter in QWebEngineView Pick-to: 6.2 Fixes: QTBUG-95331 Change-Id: I552f0047343abd909c5cd521a7a7a01d62896b00 Reviewed-by: Michal Klocek --- src/webenginewidgets/api/qwebengineview.cpp | 14 ++++++++++++++ src/webenginewidgets/api/qwebengineview.h | 2 ++ tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 5 +++++ 3 files changed, 21 insertions(+) diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 89cc356fe..aed80427c 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -629,6 +629,20 @@ QWebEngineView::~QWebEngineView() QWebEngineViewPrivate::bindPageAndView(nullptr, this); } +/*! + \since 6.2 + + Returns the view if any, associated with the page. + + \sa page(), setPage() +*/ +QWebEngineView *QWebEngineView::forPage(const QWebEnginePage *page) +{ + if (!page) + return nullptr; + return qobject_cast(page->d_ptr->accessibilityParentObject()); +} + QWebEnginePage* QWebEngineView::page() const { Q_D(const QWebEngineView); diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h index fbb230dda..edd619621 100644 --- a/src/webenginewidgets/api/qwebengineview.h +++ b/src/webenginewidgets/api/qwebengineview.h @@ -73,6 +73,8 @@ public: explicit QWebEngineView(QWidget *parent = nullptr); virtual ~QWebEngineView(); + static QWebEngineView *forPage(const QWebEnginePage *page); + QWebEnginePage* page() const; void setPage(QWebEnginePage* page); diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index 73a41e6fb..390aa1e20 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -301,6 +301,8 @@ void tst_QWebEngineView::changePage() } view->setPage(pageFrom.get()); + QCOMPARE(view->page(), pageFrom.get()); + QCOMPARE(QWebEngineView::forPage(pageFrom.get()), view.get()); QTRY_COMPARE(spyUrl.count(), 1); QCOMPARE(spyUrl.last().value(0).toUrl(), pageFrom->url()); @@ -328,6 +330,9 @@ void tst_QWebEngineView::changePage() } view->setPage(pageTo.get()); + QCOMPARE(view->page(), pageTo.get()); + QCOMPARE(QWebEngineView::forPage(pageTo.get()), view.get()); + QCOMPARE(QWebEngineView::forPage(pageFrom.get()), nullptr); QTRY_COMPARE(spyUrl.count(), 2); QCOMPARE(spyUrl.last().value(0).toUrl(), pageTo->url()); -- cgit v1.2.3