diff options
Diffstat (limited to 'src/core/api')
-rw-r--r-- | src/core/api/qwebengineloadinginfo.cpp | 23 | ||||
-rw-r--r-- | src/core/api/qwebengineloadinginfo.h | 15 | ||||
-rw-r--r-- | src/core/api/qwebenginepage.cpp | 21 | ||||
-rw-r--r-- | src/core/api/qwebenginepage_p.h | 4 |
4 files changed, 38 insertions, 25 deletions
diff --git a/src/core/api/qwebengineloadinginfo.cpp b/src/core/api/qwebengineloadinginfo.cpp index fcbb2ce7a..03a31ab72 100644 --- a/src/core/api/qwebengineloadinginfo.cpp +++ b/src/core/api/qwebengineloadinginfo.cpp @@ -56,9 +56,11 @@ Q_STATIC_ASSERT(static_cast<int>(WebEngineError::DnsErrorDomain) == static_cast< class QWebEngineLoadingInfo::QWebEngineLoadingInfoPrivate : public QSharedData { public: - QWebEngineLoadingInfoPrivate(const QUrl& url, LoadStatus status, const QString& errorString, int errorCode, ErrorDomain errorDomain) + QWebEngineLoadingInfoPrivate(const QUrl& url, LoadStatus status, bool isErrorPage, + const QString& errorString, int errorCode, ErrorDomain errorDomain) : url(url) , status(status) + , isErrorPage(isErrorPage) , errorString(errorString) , errorCode(errorCode) , errorDomain(errorDomain) @@ -67,6 +69,7 @@ public: QUrl url; LoadStatus status; + bool isErrorPage; QString errorString; int errorCode; ErrorDomain errorDomain; @@ -83,9 +86,9 @@ public: \sa QWebEnginePage::loadStarted, QWebEnginePage::loadFinished, WebEngineView::loadingChanged */ -QWebEngineLoadingInfo::QWebEngineLoadingInfo(const QUrl& url, LoadStatus status, const QString& errorString, - int errorCode, ErrorDomain errorDomain) - : d_ptr(new QWebEngineLoadingInfoPrivate(url, status, errorString, errorCode, errorDomain)) +QWebEngineLoadingInfo::QWebEngineLoadingInfo(const QUrl& url, LoadStatus status, bool isErrorPage, + const QString& errorString, int errorCode, ErrorDomain errorDomain) + : d_ptr(new QWebEngineLoadingInfoPrivate(url, status, isErrorPage, errorString, errorCode, errorDomain)) { } @@ -133,6 +136,18 @@ LoadStatus QWebEngineLoadingInfo::status() const return d->status; } /*! + \property QWebEngineLoadingInfo::isErrorPage + \property Indicates if the load's resulted in an error page. +*/ +/*! + Returns true if the load's resulted is an error page. +*/ +bool QWebEngineLoadingInfo::isErrorPage() const +{ + Q_D(const QWebEngineLoadingInfo); + return d->isErrorPage; +} +/*! \property QWebEngineLoadingInfo::errorString \brief Holds the error message. */ diff --git a/src/core/api/qwebengineloadinginfo.h b/src/core/api/qwebengineloadinginfo.h index bd07d52a3..8aacb0281 100644 --- a/src/core/api/qwebengineloadinginfo.h +++ b/src/core/api/qwebengineloadinginfo.h @@ -45,12 +45,18 @@ #include <QObject> #include <QUrl> +namespace QtWebEngineCore { +class WebContentsAdapter; +class WebContentsDelegateQt; +} + QT_BEGIN_NAMESPACE class Q_WEBENGINECORE_EXPORT QWebEngineLoadingInfo { Q_GADGET Q_PROPERTY(QUrl url READ url CONSTANT FINAL) + Q_PROPERTY(bool isErrorPage READ isErrorPage CONSTANT FINAL) Q_PROPERTY(LoadStatus status READ status CONSTANT FINAL) Q_PROPERTY(QString errorString READ errorString CONSTANT FINAL) Q_PROPERTY(ErrorDomain errorDomain READ errorDomain CONSTANT FINAL) @@ -83,19 +89,22 @@ public: ~QWebEngineLoadingInfo(); QUrl url() const; + bool isErrorPage() const; LoadStatus status() const; QString errorString() const; ErrorDomain errorDomain() const; int errorCode() const; private: - QWebEngineLoadingInfo(const QUrl& url, LoadStatus status, const QString& errorString = QString(), - int errorCode = 0, ErrorDomain errorDomain = NoErrorDomain); + QWebEngineLoadingInfo(const QUrl& url, LoadStatus status, + bool isErrorPage = false, const QString& errorString = QString(), + int errorCode = 0, ErrorDomain errorDomain = NoErrorDomain); class QWebEngineLoadingInfoPrivate; Q_DECLARE_PRIVATE(QWebEngineLoadingInfo) QExplicitlySharedDataPointer<QWebEngineLoadingInfoPrivate> d_ptr; friend class QQuickWebEngineViewPrivate; - friend class QQuickWebEngineErrorPage; + friend class QtWebEngineCore::WebContentsAdapter; + friend class QtWebEngineCore::WebContentsDelegateQt; }; QT_END_NAMESPACE diff --git a/src/core/api/qwebenginepage.cpp b/src/core/api/qwebenginepage.cpp index 460b5a351..5298849f8 100644 --- a/src/core/api/qwebenginepage.cpp +++ b/src/core/api/qwebenginepage.cpp @@ -52,6 +52,7 @@ #include "qwebenginefullscreenrequest.h" #include "qwebenginehistory.h" #include "qwebenginehistory_p.h" +#include "qwebengineloadinginfo.h" #include "qwebenginenavigationrequest.h" #include "qwebenginenewwindowrequest.h" #include "qwebenginenotification.h" @@ -300,31 +301,19 @@ QColor QWebEnginePagePrivate::backgroundColor() const return m_backgroundColor; } -void QWebEnginePagePrivate::loadStarted(const QUrl &provisionalUrl, bool isErrorPage) +void QWebEnginePagePrivate::loadStarted(QWebEngineLoadingInfo /* info */) { - Q_UNUSED(provisionalUrl); Q_Q(QWebEnginePage); - - if (isErrorPage) - return; - isLoading = true; - QTimer::singleShot(0, q, &QWebEnginePage::loadStarted); } -void QWebEnginePagePrivate::loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) +void QWebEnginePagePrivate::loadFinished(QWebEngineLoadingInfo info) { Q_Q(QWebEnginePage); - Q_UNUSED(url); - Q_UNUSED(errorCode); - Q_UNUSED(errorDescription); - - if (isErrorPage) - return; - isLoading = false; - QTimer::singleShot(0, q, [q, success](){ + bool success = info.status() == QWebEngineLoadingInfo::LoadSucceededStatus; + QTimer::singleShot(0, q, [q, success] () { emit q->loadFinished(success); }); } diff --git a/src/core/api/qwebenginepage_p.h b/src/core/api/qwebenginepage_p.h index a830028f8..46dcf2ce8 100644 --- a/src/core/api/qwebenginepage_p.h +++ b/src/core/api/qwebenginepage_p.h @@ -134,10 +134,10 @@ public: void renderProcessPidChanged(qint64 pid) override; QRectF viewportRect() const override; QColor backgroundColor() const override; - void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) override; + void loadStarted(QWebEngineLoadingInfo info) override; void loadCommitted() override { } void didFirstVisuallyNonEmptyPaint() override { } - void loadFinished(bool success, const QUrl &url, bool isErrorPage, int errorCode, const QString &errorDescription) override; + void loadFinished(QWebEngineLoadingInfo info) override; void focusContainer() override; void unhandledKeyEvent(QKeyEvent *event) override; QSharedPointer<QtWebEngineCore::WebContentsAdapter> |