diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-03-16 14:34:43 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-03-16 14:34:43 +0100 |
commit | 9ffb601435df46744b1f4a95b3a4b231f4bda64e (patch) | |
tree | 48b34f7ef1ef8aea962cf103d97ec8ab7b38291b /src/webenginewidgets/api | |
parent | 6e356d55c8eabcc96223e25182458b78378dd5a4 (diff) | |
parent | 9bec2760d44c944e7f6b43388924b5714d9e8e06 (diff) |
Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
src/webengine/ui_delegates_manager.h
Change-Id: I989280b6008fbc4844ed86d6d16f7e7aa6ba8db9
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 25 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineprofile.cpp | 28 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineprofile.h | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineprofile_p.h | 5 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 8 |
6 files changed, 53 insertions, 18 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 08976a291..0f79bbf47 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -39,6 +39,10 @@ #include "web_contents_adapter.h" #include "web_engine_settings.h" +#ifdef QT_UI_DELEGATES +#include "ui/messagebubblewidget_p.h" +#endif + #include <QAction> #include <QApplication> #include <QAuthenticator> @@ -779,6 +783,27 @@ void QWebEnginePagePrivate::javaScriptConsoleMessage(JavaScriptConsoleMessageLev q->javaScriptConsoleMessage(static_cast<QWebEnginePage::JavaScriptConsoleMessageLevel>(level), message, lineNumber, sourceID); } +void QWebEnginePagePrivate::showValidationMessage(const QRect &anchor, const QString &mainText, const QString &subText) +{ +#ifdef QT_UI_DELEGATES + QtWebEngineWidgetUI::MessageBubbleWidget::showBubble(view, anchor, mainText, subText); +#endif +} + +void QWebEnginePagePrivate::hideValidationMessage() +{ +#ifdef QT_UI_DELEGATES + QtWebEngineWidgetUI::MessageBubbleWidget::hideBubble(); +#endif +} + +void QWebEnginePagePrivate::moveValidationMessage(const QRect &anchor) +{ +#ifdef QT_UI_DELEGATES + QtWebEngineWidgetUI::MessageBubbleWidget::moveBubble(view, anchor); +#endif +} + namespace { class SaveToClipboardFunctor { diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index ccfdd5d0e..62ca16415 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -147,6 +147,9 @@ public: #endif // QT_NO_ACCESSIBILITY virtual QtWebEngineCore::WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE; virtual void allowCertificateError(const QSharedPointer<CertificateErrorController> &controller) Q_DECL_OVERRIDE; + virtual void showValidationMessage(const QRect &anchor, const QString &mainText, const QString &subText) Q_DECL_OVERRIDE; + virtual void hideValidationMessage() Q_DECL_OVERRIDE; + virtual void moveValidationMessage(const QRect &anchor) Q_DECL_OVERRIDE; virtual QtWebEngineCore::BrowserContextAdapter *browserContextAdapter() Q_DECL_OVERRIDE; diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp index eb502d050..e63519d2c 100644 --- a/src/webenginewidgets/api/qwebengineprofile.cpp +++ b/src/webenginewidgets/api/qwebengineprofile.cpp @@ -102,15 +102,12 @@ using QtWebEngineCore::BrowserContextAdapter; \sa QWebEngineDownloadItem */ -QWebEngineProfilePrivate::QWebEngineProfilePrivate(BrowserContextAdapter* browserContext, bool ownsContext) +QWebEngineProfilePrivate::QWebEngineProfilePrivate(BrowserContextAdapter* browserContext) : scriptCollection(new QWebEngineScriptCollectionPrivate(browserContext->userScriptController())) , m_settings(new QWebEngineSettings()) - , m_browserContext(browserContext) + , m_browserContextRef(browserContext) { - if (ownsContext) - m_browserContextRef = browserContext; - - m_browserContext->setClient(this); + m_browserContextRef->addClient(this); m_settings->d_ptr->initDefaults(browserContext->isOffTheRecord()); } @@ -118,7 +115,7 @@ QWebEngineProfilePrivate::~QWebEngineProfilePrivate() { delete m_settings; m_settings = 0; - m_browserContext->setClient(0); + m_browserContextRef->removeClient(this); Q_FOREACH (QWebEngineDownloadItem* download, m_ongoingDownloads) { if (download) @@ -130,7 +127,7 @@ QWebEngineProfilePrivate::~QWebEngineProfilePrivate() void QWebEngineProfilePrivate::cancelDownload(quint32 downloadId) { - m_browserContext->cancelDownload(downloadId); + browserContext()->cancelDownload(downloadId); } void QWebEngineProfilePrivate::downloadDestroyed(quint32 downloadId) @@ -196,7 +193,7 @@ void QWebEngineProfilePrivate::downloadUpdated(const DownloadItemInfo &info) */ QWebEngineProfile::QWebEngineProfile(QObject *parent) : QObject(parent) - , d_ptr(new QWebEngineProfilePrivate(new BrowserContextAdapter(true), true)) + , d_ptr(new QWebEngineProfilePrivate(new BrowserContextAdapter(false))) { d_ptr->q_ptr = this; } @@ -213,15 +210,16 @@ QWebEngineProfile::QWebEngineProfile(QObject *parent) */ QWebEngineProfile::QWebEngineProfile(const QString &storageName, QObject *parent) : QObject(parent) - , d_ptr(new QWebEngineProfilePrivate(new BrowserContextAdapter(storageName), true)) + , d_ptr(new QWebEngineProfilePrivate(new BrowserContextAdapter(storageName))) { d_ptr->q_ptr = this; } /*! \internal */ -QWebEngineProfile::QWebEngineProfile(QWebEngineProfilePrivate *privatePtr) - : d_ptr(privatePtr) +QWebEngineProfile::QWebEngineProfile(QWebEngineProfilePrivate *privatePtr, QObject *parent) + : QObject(parent) + , d_ptr(privatePtr) { d_ptr->q_ptr = this; } @@ -455,8 +453,10 @@ QWebEngineScriptCollection &QWebEngineProfile::scripts() */ QWebEngineProfile *QWebEngineProfile::defaultProfile() { - static QWebEngineProfile profile(new QWebEngineProfilePrivate(BrowserContextAdapter::defaultContext(), false)); - return &profile; + static QWebEngineProfile* profile = new QWebEngineProfile( + new QWebEngineProfilePrivate(BrowserContextAdapter::defaultContext()), + BrowserContextAdapter::globalQObjectRoot()); + return profile; } /*! diff --git a/src/webenginewidgets/api/qwebengineprofile.h b/src/webenginewidgets/api/qwebengineprofile.h index a25cbcccd..d65db24ab 100644 --- a/src/webenginewidgets/api/qwebengineprofile.h +++ b/src/webenginewidgets/api/qwebengineprofile.h @@ -107,7 +107,7 @@ Q_SIGNALS: private: Q_DECLARE_PRIVATE(QWebEngineProfile) - QWebEngineProfile(QWebEngineProfilePrivate *); + QWebEngineProfile(QWebEngineProfilePrivate *, QObject *parent = 0); friend class QWebEnginePagePrivate; friend class QWebEngineUrlSchemeHandler; diff --git a/src/webenginewidgets/api/qwebengineprofile_p.h b/src/webenginewidgets/api/qwebengineprofile_p.h index 6ae9f9ca9..b0bfc88b9 100644 --- a/src/webenginewidgets/api/qwebengineprofile_p.h +++ b/src/webenginewidgets/api/qwebengineprofile_p.h @@ -55,10 +55,10 @@ class QWebEngineSettings; class QWebEngineProfilePrivate : public QtWebEngineCore::BrowserContextAdapterClient { public: Q_DECLARE_PUBLIC(QWebEngineProfile) - QWebEngineProfilePrivate(QtWebEngineCore::BrowserContextAdapter* browserContext, bool ownsContext); + QWebEngineProfilePrivate(QtWebEngineCore::BrowserContextAdapter* browserContext); ~QWebEngineProfilePrivate(); - QtWebEngineCore::BrowserContextAdapter *browserContext() const { return m_browserContext; } + QtWebEngineCore::BrowserContextAdapter *browserContext() const { return m_browserContextRef.data(); } QWebEngineSettings *settings() const { return m_settings; } void cancelDownload(quint32 downloadId); @@ -76,7 +76,6 @@ public: private: QWebEngineProfile *q_ptr; QWebEngineSettings *m_settings; - QtWebEngineCore::BrowserContextAdapter *m_browserContext; QExplicitlySharedDataPointer<QtWebEngineCore::BrowserContextAdapter> m_browserContextRef; QMap<quint32, QPointer<QWebEngineDownloadItem> > m_ongoingDownloads; QMap<QByteArray, QPointer<QWebEngineUrlSchemeHandler> > m_urlSchemeHandlers; diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 039e18a16..a4a8dd760 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -40,6 +40,10 @@ #include "qwebenginepage_p.h" #include "web_contents_adapter.h" +#ifdef QT_UI_DELEGATES +#include "ui/messagebubblewidget_p.h" +#endif + #include <QAction> #include <QMenu> #include <QContextMenuEvent> @@ -118,6 +122,10 @@ QWebEngineView::~QWebEngineView() { Q_D(QWebEngineView); QWebEngineViewPrivate::bind(0, d->page); + +#ifdef QT_UI_DELEGATES + QtWebEngineWidgetUI::MessageBubbleWidget::hideBubble(); +#endif } QWebEnginePage* QWebEngineView::page() const |