diff options
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 14 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.h | 2 | ||||
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 5 |
3 files changed, 21 insertions, 0 deletions
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<QWebEngineView *>(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 2e3943e29..dc7f34983 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()); |