diff options
Diffstat (limited to 'src/core/web_engine_settings.h')
-rw-r--r-- | src/core/web_engine_settings.h | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/core/web_engine_settings.h b/src/core/web_engine_settings.h index c098f8ef4..8ee7d8871 100644 --- a/src/core/web_engine_settings.h +++ b/src/core/web_engine_settings.h @@ -43,19 +43,15 @@ #include <QScopedPointer> #include <QHash> #include <QUrl> +#include <QSet> class BatchTimer; class WebContentsAdapter; class WebEngineSettings; -struct WebPreferences; -class QWEBENGINE_EXPORT WebEngineSettingsDelegate { -public: - virtual ~WebEngineSettingsDelegate() {} - virtual void apply() = 0; - // Needs to be a valid pointer, the last available fallback (ex: global settings) should return itself. - virtual WebEngineSettings *fallbackSettings() const = 0; -}; +namespace content { +struct WebPreferences; +} class QWEBENGINE_EXPORT WebEngineSettings { public: @@ -95,10 +91,12 @@ public: DefaultFixedFontSize }; - WebEngineSettings(WebEngineSettingsDelegate*); - virtual ~WebEngineSettings(); + explicit WebEngineSettings(WebEngineSettings *parentSettings = 0); + ~WebEngineSettings(); - void overrideWebPreferences(WebPreferences *prefs); + void setParentSettings(WebEngineSettings *parentSettings); + + void overrideWebPreferences(content::WebPreferences *prefs); void setAttribute(Attribute, bool on); bool testAttribute(Attribute) const; @@ -115,23 +113,27 @@ public: void setDefaultTextEncoding(const QString &encoding); QString defaultTextEncoding() const; - void initDefaults(); + void initDefaults(bool offTheRecord = false); void scheduleApply(); + void scheduleApplyRecursively(); + private: void doApply(); - void applySettingsToWebPreferences(WebPreferences *); + void applySettingsToWebPreferences(content::WebPreferences *); void setWebContentsAdapter(WebContentsAdapter *adapter) { m_adapter = adapter; } WebContentsAdapter* m_adapter; - WebEngineSettingsDelegate* m_delegate; QHash<Attribute, bool> m_attributes; QHash<FontFamily, QString> m_fontFamilies; QHash<FontSize, int> m_fontSizes; QString m_defaultEncoding; - QScopedPointer<WebPreferences> webPreferences; + QScopedPointer<content::WebPreferences> webPreferences; QScopedPointer<BatchTimer> m_batchTimer; + WebEngineSettings *parentSettings; + QSet<WebEngineSettings *> childSettings; + friend class BatchTimer; friend class WebContentsAdapter; }; |