summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api/qwebenginesettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets/api/qwebenginesettings.cpp')
-rw-r--r--src/webenginewidgets/api/qwebenginesettings.cpp123
1 files changed, 45 insertions, 78 deletions
diff --git a/src/webenginewidgets/api/qwebenginesettings.cpp b/src/webenginewidgets/api/qwebenginesettings.cpp
index 729a09f56..e126a7e64 100644
--- a/src/webenginewidgets/api/qwebenginesettings.cpp
+++ b/src/webenginewidgets/api/qwebenginesettings.cpp
@@ -35,13 +35,14 @@
****************************************************************************/
#include "qwebenginesettings.h"
-#include "qwebenginesettings_p.h"
-#include <QDebug>
+#include "qwebengineprofile.h"
+#include "web_engine_settings.h"
-QT_USE_NAMESPACE
+QT_BEGIN_NAMESPACE
-static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::WebAttribute attribute) {
+static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::WebAttribute attribute)
+{
switch (attribute) {
case QWebEngineSettings::AutoLoadImages:
return WebEngineSettings::AutoLoadImages;
@@ -74,144 +75,110 @@ static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::Web
}
}
-Q_GLOBAL_STATIC(QList<QWebEngineSettingsPrivate*>, allSettings);
-
-QWebEngineSettingsPrivate::QWebEngineSettingsPrivate()
- : coreSettings(new WebEngineSettings(this))
+QWebEngineSettings::QWebEngineSettings(QWebEngineSettings *parentSettings)
+ : d_ptr(new WebEngineSettings(parentSettings ? parentSettings->d_func() : 0))
{
+ Q_D(QWebEngineSettings);
+ d->scheduleApplyRecursively();
}
-void QWebEngineSettingsPrivate::apply()
+QWebEngineSettings::~QWebEngineSettings()
{
- coreSettings->scheduleApply();
- QWebEngineSettingsPrivate *globals = QWebEngineSettings::globalSettings()->d_func();
- Q_ASSERT((this == globals) != (allSettings->contains(this)));
- if (this == globals) {
- Q_FOREACH (QWebEngineSettingsPrivate *settings, *allSettings)
- settings->coreSettings->scheduleApply();
- }
}
-void QWebEngineSettingsPrivate::initDefaults()
+#if QT_DEPRECATED_SINCE(5, 5)
+QWebEngineSettings *QWebEngineSettings::globalSettings()
{
- coreSettings->initDefaults();
-}
-
-WebEngineSettings *QWebEngineSettingsPrivate::fallbackSettings() const {
- return QWebEngineSettings::globalSettings()->d_func()->coreSettings.data();
+ return defaultSettings();
}
+#endif
-QWebEngineSettings *QWebEngineSettings::globalSettings()
+QWebEngineSettings *QWebEngineSettings::defaultSettings()
{
- static QWebEngineSettings* globalSettings = 0;
- if (!globalSettings) {
- globalSettings = new QWebEngineSettings;
- // globalSettings shouldn't be in that list.
- allSettings->removeAll(globalSettings->d_func());
- globalSettings->d_func()->initDefaults();
- }
- return globalSettings;
+ return QWebEngineProfile::defaultProfile()->settings();
}
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::StandardFont) == static_cast<int>(QWebEngineSettings::StandardFont), "The enum values must match");
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::FixedFont) == static_cast<int>(QWebEngineSettings::FixedFont), "The enum values must match");
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::SerifFont) == static_cast<int>(QWebEngineSettings::SerifFont), "The enum values must match");
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::SansSerifFont) == static_cast<int>(QWebEngineSettings::SansSerifFont), "The enum values must match");
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::CursiveFont) == static_cast<int>(QWebEngineSettings::CursiveFont), "The enum values must match");
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::FantasyFont) == static_cast<int>(QWebEngineSettings::FantasyFont), "The enum values must match");
+ASSERT_ENUMS_MATCH(WebEngineSettings::StandardFont, QWebEngineSettings::StandardFont)
+ASSERT_ENUMS_MATCH(WebEngineSettings::FixedFont, QWebEngineSettings::FixedFont)
+ASSERT_ENUMS_MATCH(WebEngineSettings::SerifFont, QWebEngineSettings::SerifFont)
+ASSERT_ENUMS_MATCH(WebEngineSettings::SansSerifFont, QWebEngineSettings::SansSerifFont)
+ASSERT_ENUMS_MATCH(WebEngineSettings::CursiveFont, QWebEngineSettings::CursiveFont)
+ASSERT_ENUMS_MATCH(WebEngineSettings::FantasyFont, QWebEngineSettings::FantasyFont)
void QWebEngineSettings::setFontFamily(QWebEngineSettings::FontFamily which, const QString &family)
{
Q_D(QWebEngineSettings);
- d->coreSettings->setFontFamily(static_cast<WebEngineSettings::FontFamily>(which), family);
+ d->setFontFamily(static_cast<WebEngineSettings::FontFamily>(which), family);
}
QString QWebEngineSettings::fontFamily(QWebEngineSettings::FontFamily which) const
{
- Q_D(const QWebEngineSettings);
- return d->coreSettings->fontFamily(static_cast<WebEngineSettings::FontFamily>(which));
+ return d_ptr->fontFamily(static_cast<WebEngineSettings::FontFamily>(which));
}
void QWebEngineSettings::resetFontFamily(QWebEngineSettings::FontFamily which)
{
- Q_D(QWebEngineSettings);
- d->coreSettings->resetFontFamily(static_cast<WebEngineSettings::FontFamily>(which));
+ d_ptr->resetFontFamily(static_cast<WebEngineSettings::FontFamily>(which));
}
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::DefaultFixedFontSize) == static_cast<int>(QWebEngineSettings::DefaultFixedFontSize), "The enum values must match");
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::DefaultFontSize) == static_cast<int>(QWebEngineSettings::DefaultFontSize), "The enum values must match");
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::MinimumFontSize) == static_cast<int>(QWebEngineSettings::MinimumFontSize), "The enum values must match");
-Q_STATIC_ASSERT_X(static_cast<int>(WebEngineSettings::MinimumLogicalFontSize) == static_cast<int>(QWebEngineSettings::MinimumLogicalFontSize), "The enum values must match");
+ASSERT_ENUMS_MATCH(WebEngineSettings::DefaultFixedFontSize, QWebEngineSettings::DefaultFixedFontSize)
+ASSERT_ENUMS_MATCH(WebEngineSettings::DefaultFontSize, QWebEngineSettings::DefaultFontSize)
+ASSERT_ENUMS_MATCH(WebEngineSettings::MinimumFontSize, QWebEngineSettings::MinimumFontSize)
+ASSERT_ENUMS_MATCH(WebEngineSettings::MinimumLogicalFontSize, QWebEngineSettings::MinimumLogicalFontSize)
void QWebEngineSettings::setFontSize(QWebEngineSettings::FontSize type, int size)
{
- Q_D(const QWebEngineSettings);
- d->coreSettings->setFontSize(static_cast<WebEngineSettings::FontSize>(type), size);
+ Q_D(QWebEngineSettings);
+ d->setFontSize(static_cast<WebEngineSettings::FontSize>(type), size);
}
int QWebEngineSettings::fontSize(QWebEngineSettings::FontSize type) const
{
Q_D(const QWebEngineSettings);
- return d->coreSettings->fontSize(static_cast<WebEngineSettings::FontSize>(type));
+ return d->fontSize(static_cast<WebEngineSettings::FontSize>(type));
}
void QWebEngineSettings::resetFontSize(QWebEngineSettings::FontSize type)
{
Q_D(QWebEngineSettings);
- d->coreSettings->resetFontSize(static_cast<WebEngineSettings::FontSize>(type));
-}
-
-
-QWebEngineSettings::QWebEngineSettings()
- : d_ptr(new QWebEngineSettingsPrivate)
-{
- Q_D(QWebEngineSettings);
- allSettings->append(d);
- d->coreSettings->scheduleApply();
+ d->resetFontSize(static_cast<WebEngineSettings::FontSize>(type));
}
-QWebEngineSettings::~QWebEngineSettings()
-{
- Q_D(QWebEngineSettings);
- allSettings->removeAll(d);
-}
-
void QWebEngineSettings::setDefaultTextEncoding(const QString &encoding)
{
Q_D(QWebEngineSettings);
- d->coreSettings->setDefaultTextEncoding(encoding);
+ d->setDefaultTextEncoding(encoding);
}
QString QWebEngineSettings::defaultTextEncoding() const
{
Q_D(const QWebEngineSettings);
- return d->coreSettings->defaultTextEncoding();
+ return d->defaultTextEncoding();
}
void QWebEngineSettings::setAttribute(QWebEngineSettings::WebAttribute attr, bool on)
{
Q_D(QWebEngineSettings);
WebEngineSettings::Attribute webEngineAttribute = toWebEngineAttribute(attr);
- if (webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings)
- return d->coreSettings->setAttribute(webEngineAttribute, on);
- qDebug() << Q_FUNC_INFO << "Missing support for:" << attr;
+ Q_ASSERT(webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings);
+ d->setAttribute(webEngineAttribute, on);
}
bool QWebEngineSettings::testAttribute(QWebEngineSettings::WebAttribute attr) const
{
Q_D(const QWebEngineSettings);
WebEngineSettings::Attribute webEngineAttribute = toWebEngineAttribute(attr);
- if (webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings)
- return d->coreSettings->testAttribute(webEngineAttribute);
-
-
-
- qDebug() << Q_FUNC_INFO << "Missing support for:" << attr;
- return false;
+ Q_ASSERT(webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings);
+ return d->testAttribute(webEngineAttribute);
}
void QWebEngineSettings::resetAttribute(QWebEngineSettings::WebAttribute attr)
{
- setAttribute(attr, globalSettings()->testAttribute(attr));
+ Q_D(QWebEngineSettings);
+ WebEngineSettings::Attribute webEngineAttribute = toWebEngineAttribute(attr);
+ Q_ASSERT(webEngineAttribute != WebEngineSettings::UnsupportedInCoreSettings);
+ d->resetAttribute(webEngineAttribute);
}
+
+QT_END_NAMESPACE