diff options
author | Michal Klocek <michal.klocek@qt.io> | 2020-08-28 09:35:24 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2020-11-18 19:03:23 +0100 |
commit | 739e276c67d08a156ba426f12094f3d08515d56a (patch) | |
tree | 40dbe11cfaeb50f40f22050338419ec5c7e934e8 /src | |
parent | 6e81c97c32974cb761687dfb3afd3d5fa4944397 (diff) |
Drop dependency on page in profile
Change-Id: Idbec1657522272c895dc1822e83e0d9592c33343
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/api/qwebenginedownloadrequest.cpp | 6 | ||||
-rw-r--r-- | src/core/api/qwebenginedownloadrequest.h | 1 | ||||
-rw-r--r-- | src/core/api/qwebenginedownloadrequest_p.h | 3 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineprofile.cpp | 4 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 6 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineprofile.cpp | 6 |
7 files changed, 19 insertions, 9 deletions
diff --git a/src/core/api/qwebenginedownloadrequest.cpp b/src/core/api/qwebenginedownloadrequest.cpp index bf4994a64..58f02ee4f 100644 --- a/src/core/api/qwebenginedownloadrequest.cpp +++ b/src/core/api/qwebenginedownloadrequest.cpp @@ -170,7 +170,7 @@ QWebEngineDownloadRequestPrivate::QWebEngineDownloadRequestPrivate(QtWebEngineCo , totalBytes(-1) , receivedBytes(0) , isSavePageDownload(false) - , page(nullptr) + , m_adapterClient(nullptr) { } @@ -657,7 +657,9 @@ QString QWebEngineDownloadRequest::interruptReasonString() const QObject *QWebEngineDownloadRequest::page() const { Q_D(const QWebEngineDownloadRequest); - return d->page; + //TODO: come back here when page is in core + Q_UNREACHABLE(); + return nullptr; } QWebEngineDownloadRequest::QWebEngineDownloadRequest(QWebEngineDownloadRequestPrivate *p, QObject *parent) diff --git a/src/core/api/qwebenginedownloadrequest.h b/src/core/api/qwebenginedownloadrequest.h index 38d43cf1f..3e0e0d044 100644 --- a/src/core/api/qwebenginedownloadrequest.h +++ b/src/core/api/qwebenginedownloadrequest.h @@ -169,6 +169,7 @@ private: friend class QWebEngineProfilePrivate; friend class QQuickWebEngineProfilePrivate; + friend class QWebEnginePage; QWebEngineDownloadRequest(QWebEngineDownloadRequestPrivate*, QObject *parent = Q_NULLPTR); QScopedPointer<QWebEngineDownloadRequestPrivate> d_ptr; }; diff --git a/src/core/api/qwebenginedownloadrequest_p.h b/src/core/api/qwebenginedownloadrequest_p.h index bc172bd7b..db2e70852 100644 --- a/src/core/api/qwebenginedownloadrequest_p.h +++ b/src/core/api/qwebenginedownloadrequest_p.h @@ -59,6 +59,7 @@ namespace QtWebEngineCore { class ProfileAdapter; +class WebContentsAdapterClient; } QT_BEGIN_NAMESPACE @@ -90,7 +91,7 @@ public: bool isSavePageDownload; QWebEngineDownloadRequest *q_ptr; QPointer<QtWebEngineCore::ProfileAdapter> m_profileAdapter; - QObject *page; + QtWebEngineCore::WebContentsAdapterClient *m_adapterClient; Q_DECLARE_PUBLIC(QWebEngineDownloadRequest) }; diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp index c264a73f9..9e848691b 100644 --- a/src/webengine/api/qquickwebengineprofile.cpp +++ b/src/webengine/api/qquickwebengineprofile.cpp @@ -251,9 +251,9 @@ void QQuickWebEngineProfilePrivate::downloadRequested(DownloadItemInfo &info) info.savePageFormat); itemPrivate->isSavePageDownload = info.isSavePageDownload; if (info.page && info.page->clientType() == QtWebEngineCore::WebContentsAdapterClient::QmlClient) - itemPrivate->page = static_cast<QQuickWebEngineViewPrivate *>(info.page)->q_ptr; + itemPrivate->m_adapterClient = info.page; else - itemPrivate->page = nullptr; + itemPrivate->m_adapterClient = nullptr; QWebEngineDownloadRequest *download = new QWebEngineDownloadRequest(itemPrivate, q); diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 4c191e100..5b63f913c 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -39,6 +39,8 @@ #include "qwebenginepage.h" #include "qwebenginepage_p.h" + +#include "qwebenginedownloadrequest_p.h" #include "qwebenginenotificationpresenter_p.h" #include "authentication_dialog_controller.h" #include "profile_adapter.h" @@ -2609,6 +2611,10 @@ void QWebEnginePage::setVisible(bool visible) d->adapter->setVisible(visible); } +QWebEnginePage* QWebEnginePage::fromDownloadRequest(QWebEngineDownloadRequest *request) { + return static_cast<QWebEnginePagePrivate *>(request->d_ptr->m_adapterClient)->q_ptr; +} + QT_END_NAMESPACE #include "moc_qwebenginepage.cpp" diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 5ac30863f..f842a5eb1 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -322,6 +322,8 @@ public: bool isVisible() const; void setVisible(bool visible); + static QWebEnginePage* fromDownloadRequest(QWebEngineDownloadRequest * request); + Q_SIGNALS: void loadStarted(); void loadProgress(int progress); diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp index c2a6cdd45..942b969b0 100644 --- a/src/webenginewidgets/api/qwebengineprofile.cpp +++ b/src/webenginewidgets/api/qwebengineprofile.cpp @@ -44,8 +44,6 @@ #include "qwebenginedownloadrequest.h" #include "qwebenginedownloadrequest_p.h" #include "qwebenginenotification.h" -#include "qwebenginepage.h" -#include "qwebenginepage_p.h" #include "qwebenginesettings.h" #include "qwebenginescriptcollection_p.h" #include "qtwebenginecoreglobal.h" @@ -234,9 +232,9 @@ void QWebEngineProfilePrivate::downloadRequested(DownloadItemInfo &info) itemPrivate->savePageFormat = static_cast<QWebEngineDownloadRequest::SavePageFormat>(info.savePageFormat); itemPrivate->isSavePageDownload = info.isSavePageDownload; if (info.page && info.page->clientType() == QtWebEngineCore::WebContentsAdapterClient::WidgetsClient) - itemPrivate->page = static_cast<QWebEnginePagePrivate *>(info.page)->q_ptr; + itemPrivate->m_adapterClient = info.page; else - itemPrivate->page = nullptr; + itemPrivate->m_adapterClient = nullptr; QWebEngineDownloadRequest *download = new QWebEngineDownloadRequest(itemPrivate, q); |