From ab8cc57c21ab9b8d982728c5945586b562d84255 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Mon, 3 Feb 2014 16:59:23 +0100 Subject: Make QWebEnginePage support symetrical url and setUrl Unlike load, the value passed to setUrl should be returned by url until the url is updated by the page (load finished or url changed). Change-Id: Ica80941754fcf57d68071123daa28f5ddd1359fe Reviewed-by: Pierre Rossi --- src/webenginewidgets/api/qwebenginepage.cpp | 7 ++++++- src/webenginewidgets/api/qwebenginepage_p.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src/webenginewidgets') diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 0f414f313..6d20088df 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -90,6 +90,7 @@ void QWebEnginePagePrivate::titleChanged(const QString &title) void QWebEnginePagePrivate::urlChanged(const QUrl &url) { Q_Q(QWebEnginePage); + m_explicitUrl = QUrl(); Q_EMIT q->urlChanged(url); } @@ -132,6 +133,8 @@ void QWebEnginePagePrivate::loadFinished(bool success, int error_code, const QSt Q_UNUSED(error_code); Q_UNUSED(error_description); m_isLoading = adapter->isLoading(); + if (success) + m_explicitUrl = QUrl(); Q_EMIT q->loadFinished(success); } @@ -539,13 +542,15 @@ QString QWebEnginePage::title() const void QWebEnginePage::setUrl(const QUrl &url) { + Q_D(QWebEnginePage); + d->m_explicitUrl = url; load(url); } QUrl QWebEnginePage::url() const { Q_D(const QWebEnginePage); - return d->adapter->activeUrl(); + return d->m_explicitUrl.isValid() ? d->m_explicitUrl : d->adapter->activeUrl(); } QUrl QWebEnginePage::requestedUrl() const diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index b905cee6d..e40bc510a 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -100,6 +100,7 @@ public: QWebEngineView *view; mutable QAction *actions[QWebEnginePage::WebActionCount]; bool m_isLoading; + QUrl m_explicitUrl; WebEngineContextMenuData m_menuData; QPointer m_rwhvDelegate; -- cgit v1.2.3