summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-03-16 14:34:43 +0100
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-03-16 14:34:43 +0100
commit9ffb601435df46744b1f4a95b3a4b231f4bda64e (patch)
tree48b34f7ef1ef8aea962cf103d97ec8ab7b38291b /src/webenginewidgets/api
parent6e356d55c8eabcc96223e25182458b78378dd5a4 (diff)
parent9bec2760d44c944e7f6b43388924b5714d9e8e06 (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.cpp25
-rw-r--r--src/webenginewidgets/api/qwebenginepage_p.h3
-rw-r--r--src/webenginewidgets/api/qwebengineprofile.cpp28
-rw-r--r--src/webenginewidgets/api/qwebengineprofile.h2
-rw-r--r--src/webenginewidgets/api/qwebengineprofile_p.h5
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp8
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