summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets')
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp2
-rw-r--r--src/webenginewidgets/api/qwebenginesettings.cpp20
-rw-r--r--src/webenginewidgets/api/qwebenginesettings.h1
-rw-r--r--src/webenginewidgets/api/qwebenginesettings_p.h1
4 files changed, 7 insertions, 17 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 71099e547..4cf35f8c4 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -168,7 +168,7 @@ void CallbackDirectory::CallbackSharedDataPointer::doDeref()
QWebEnginePagePrivate::QWebEnginePagePrivate()
: adapter(new WebContentsAdapter)
, history(new QWebEngineHistory(new QWebEngineHistoryPrivate(this)))
- , settings(new QWebEngineSettings(new QWebEngineSettingsPrivate(adapter.data())))
+ , settings(new QWebEngineSettings)
, view(0)
{
memset(actions, 0, sizeof(actions));
diff --git a/src/webenginewidgets/api/qwebenginesettings.cpp b/src/webenginewidgets/api/qwebenginesettings.cpp
index 52cc59a80..b2a57952f 100644
--- a/src/webenginewidgets/api/qwebenginesettings.cpp
+++ b/src/webenginewidgets/api/qwebenginesettings.cpp
@@ -84,15 +84,11 @@ QWebEngineSettingsPrivate::QWebEngineSettingsPrivate()
{
}
-QWebEngineSettingsPrivate::QWebEngineSettingsPrivate(WebContentsAdapter *adapter)
- : coreSettings(new WebEngineSettings(this, adapter))
-{
-}
-
void QWebEngineSettingsPrivate::apply()
{
coreSettings->scheduleApply();
QWebEngineSettingsPrivate *globals = QWebEngineSettings::globalSettings()->d;
+ Q_ASSERT((this == globals) != (allSettings->contains(this)));
if (this == globals) {
Q_FOREACH (QWebEngineSettingsPrivate *settings, *allSettings)
settings->coreSettings->scheduleApply();
@@ -111,8 +107,12 @@ WebEngineSettings *QWebEngineSettingsPrivate::fallbackSettings() const {
QWebEngineSettings *QWebEngineSettings::globalSettings()
{
static QWebEngineSettings* globalSettings = 0;
- if (!globalSettings)
+ if (!globalSettings) {
globalSettings = new QWebEngineSettings;
+ // globalSettings shouldn't be in that list.
+ allSettings->removeAll(globalSettings->d);
+ globalSettings->d->initDefaults();
+ }
return globalSettings;
}
@@ -162,14 +162,6 @@ void QWebEngineSettings::resetFontSize(QWebEngineSettings::FontSize type)
QWebEngineSettings::QWebEngineSettings()
: d(new QWebEngineSettingsPrivate)
{
- d->initDefaults();
-}
-
-
-QWebEngineSettings::QWebEngineSettings(QWebEngineSettingsPrivate *p)
- : d(p)
-{
- Q_ASSERT(d);
allSettings->append(d);
d->coreSettings->scheduleApply();
}
diff --git a/src/webenginewidgets/api/qwebenginesettings.h b/src/webenginewidgets/api/qwebenginesettings.h
index bbb0cf899..c8af3a1b1 100644
--- a/src/webenginewidgets/api/qwebenginesettings.h
+++ b/src/webenginewidgets/api/qwebenginesettings.h
@@ -87,7 +87,6 @@ private:
friend class QWebEngineSettingsPrivate;
QWebEngineSettings();
- QWebEngineSettings(QWebEngineSettingsPrivate *);
~QWebEngineSettings();
QWebEngineSettingsPrivate *d;
diff --git a/src/webenginewidgets/api/qwebenginesettings_p.h b/src/webenginewidgets/api/qwebenginesettings_p.h
index 96fa9e27b..dda39a37d 100644
--- a/src/webenginewidgets/api/qwebenginesettings_p.h
+++ b/src/webenginewidgets/api/qwebenginesettings_p.h
@@ -52,7 +52,6 @@ class QWebEngineSettingsPrivate : public WebEngineSettingsDelegate {
public:
QWebEngineSettingsPrivate();
- QWebEngineSettingsPrivate(WebContentsAdapter *adapter);
void initDefaults();
void apply() Q_DECL_OVERRIDE;