summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2020-08-28 09:35:24 +0200
committerMichal Klocek <michal.klocek@qt.io>2020-11-18 19:03:23 +0100
commit739e276c67d08a156ba426f12094f3d08515d56a (patch)
tree40dbe11cfaeb50f40f22050338419ec5c7e934e8 /src
parent6e81c97c32974cb761687dfb3afd3d5fa4944397 (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.cpp6
-rw-r--r--src/core/api/qwebenginedownloadrequest.h1
-rw-r--r--src/core/api/qwebenginedownloadrequest_p.h3
-rw-r--r--src/webengine/api/qquickwebengineprofile.cpp4
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp6
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h2
-rw-r--r--src/webenginewidgets/api/qwebengineprofile.cpp6
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);