diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-07-08 14:14:21 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-07-17 11:33:07 +0000 |
commit | c53fd1412efebbbf11798fb81735a520c72464e0 (patch) | |
tree | 8e3bb3341995cade606eb8478388509cf6f58efc /src | |
parent | e3a2cea65ab39e111496b9d4caa8c4807ad41894 (diff) |
Export fullscreen support setting to QML API
Let applications tell QtWebEngine whether they support the fullscreen
API or not.
Change-Id: I97681cf1c68a9d7a3b8bb7dcca861ec0b0a79ed6
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/web_engine_settings.cpp | 2 | ||||
-rw-r--r-- | src/core/web_engine_settings.h | 3 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineprofile.cpp | 3 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings.cpp | 21 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings_p.h | 4 | ||||
-rw-r--r-- | src/webengine/plugin/plugin.cpp | 1 |
6 files changed, 33 insertions, 1 deletions
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index f907f6e00..b59ec7311 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -214,6 +214,7 @@ void WebEngineSettings::initDefaults(bool offTheRecord) m_attributes.insert(ScrollAnimatorEnabled, false); m_attributes.insert(ErrorPageEnabled, true); m_attributes.insert(PluginsEnabled, false); + m_attributes.insert(FullscreenSupportEnabled, false); // Default fonts QFont defaultFont; @@ -279,6 +280,7 @@ void WebEngineSettings::applySettingsToWebPreferences(content::WebPreferences *p prefs->enable_scroll_animator = testAttribute(ScrollAnimatorEnabled); prefs->enable_error_page = testAttribute(ErrorPageEnabled); prefs->plugins_enabled = testAttribute(PluginsEnabled); + prefs->fullscreen_supported = testAttribute(FullscreenSupportEnabled); // Fonts settings. prefs->standard_font_family_map[content::kCommonScript] = toString16(fontFamily(StandardFont)); diff --git a/src/core/web_engine_settings.h b/src/core/web_engine_settings.h index a59a7f5fd..1d8f83184 100644 --- a/src/core/web_engine_settings.h +++ b/src/core/web_engine_settings.h @@ -71,7 +71,8 @@ public: HyperlinkAuditingEnabled, ScrollAnimatorEnabled, ErrorPageEnabled, - PluginsEnabled + PluginsEnabled, + FullscreenSupportEnabled, }; // Must match the values from the public API in qwebenginesettings.h. diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp index 69c524356..75ac6bb62 100644 --- a/src/webengine/api/qquickwebengineprofile.cpp +++ b/src/webengine/api/qquickwebengineprofile.cpp @@ -56,6 +56,9 @@ QQuickWebEngineProfilePrivate::QQuickWebEngineProfilePrivate(BrowserContextAdapt { m_browserContextRef->addClient(this); m_settings->d_ptr->initDefaults(browserContext->isOffTheRecord()); + // Fullscreen API was implemented before the supported setting, so we must + // make it default true to avoid change in default API behavior. + m_settings->d_ptr->setAttribute(QtWebEngineCore::WebEngineSettings::FullscreenSupportEnabled, true); } QQuickWebEngineProfilePrivate::~QQuickWebEngineProfilePrivate() diff --git a/src/webengine/api/qquickwebenginesettings.cpp b/src/webengine/api/qquickwebenginesettings.cpp index 26ea094a5..6a012ba39 100644 --- a/src/webengine/api/qquickwebenginesettings.cpp +++ b/src/webengine/api/qquickwebenginesettings.cpp @@ -221,6 +221,19 @@ bool QQuickWebEngineSettings::pluginsEnabled() const } /*! + \qmlproperty bool WebEngineSettings::fullscreenSupportEnabled + \since QtWebEngine 1.2 + + This setting tells the web engine if fullscreen is supported in this application or not. + + It is enabled by default. +*/ +bool QQuickWebEngineSettings::fullscreenSupportEnabled() const +{ + return d_ptr->testAttribute(WebEngineSettings::FullscreenSupportEnabled); +} + +/*! \qmlproperty QString WebEngineSettings::defaultTextEncoding The \a encoding, must be a string describing an encoding such as "utf-8", @@ -332,6 +345,14 @@ void QQuickWebEngineSettings::setPluginsEnabled(bool on) Q_EMIT pluginsEnabledChanged(); } +void QQuickWebEngineSettings::setFullscreenSupportEnabled(bool on) +{ + bool wasOn = d_ptr->testAttribute(WebEngineSettings::FullscreenSupportEnabled); + d_ptr->setAttribute(WebEngineSettings::FullscreenSupportEnabled, on); + if (wasOn != on) + Q_EMIT fullscreenSupportEnabledChanged(); +} + void QQuickWebEngineSettings::setDefaultTextEncoding(QString encoding) { const QString oldDefaultTextEncoding = d_ptr->defaultTextEncoding(); diff --git a/src/webengine/api/qquickwebenginesettings_p.h b/src/webengine/api/qquickwebenginesettings_p.h index f077c0ee2..dce060c9f 100644 --- a/src/webengine/api/qquickwebenginesettings_p.h +++ b/src/webengine/api/qquickwebenginesettings_p.h @@ -61,6 +61,7 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject { Q_PROPERTY(bool hyperlinkAuditingEnabled READ hyperlinkAuditingEnabled WRITE setHyperlinkAuditingEnabled NOTIFY hyperlinkAuditingEnabledChanged) Q_PROPERTY(bool errorPageEnabled READ errorPageEnabled WRITE setErrorPageEnabled NOTIFY errorPageEnabledChanged) Q_PROPERTY(bool pluginsEnabled READ pluginsEnabled WRITE setPluginsEnabled NOTIFY pluginsEnabledChanged) + Q_PROPERTY(bool fullscreenSupportEnabled READ fullscreenSupportEnabled WRITE setFullscreenSupportEnabled NOTIFY fullscreenSupportEnabledChanged REVISION 1) Q_PROPERTY(QString defaultTextEncoding READ defaultTextEncoding WRITE setDefaultTextEncoding NOTIFY defaultTextEncodingChanged) public: @@ -78,6 +79,7 @@ public: bool hyperlinkAuditingEnabled() const; bool errorPageEnabled() const; bool pluginsEnabled() const; + bool fullscreenSupportEnabled() const; QString defaultTextEncoding() const; void setAutoLoadImages(bool on); @@ -92,6 +94,7 @@ public: void setHyperlinkAuditingEnabled(bool on); void setErrorPageEnabled(bool on); void setPluginsEnabled(bool on); + void setFullscreenSupportEnabled(bool on); void setDefaultTextEncoding(QString encoding); signals: @@ -107,6 +110,7 @@ signals: void hyperlinkAuditingEnabledChanged(); void errorPageEnabledChanged(); void pluginsEnabledChanged(); + Q_REVISION(1) void fullscreenSupportEnabledChanged(); void defaultTextEncodingChanged(); private: diff --git a/src/webengine/plugin/plugin.cpp b/src/webengine/plugin/plugin.cpp index 95268e2c1..e4b96c47b 100644 --- a/src/webengine/plugin/plugin.cpp +++ b/src/webengine/plugin/plugin.cpp @@ -77,6 +77,7 @@ public: QObject::tr("Cannot create a separate instance of WebEngineDownloadItem")); qmlRegisterUncreatableType<QQuickWebEngineNewViewRequest>(uri, 1, 1, "WebEngineNewViewRequest", QObject::tr("Cannot create separate instance of WebEngineNewViewRequest")); qmlRegisterUncreatableType<QQuickWebEngineSettings>(uri, 1, 1, "WebEngineSettings", QObject::tr("Cannot create a separate instance of WebEngineSettings")); + qmlRegisterUncreatableType<QQuickWebEngineSettings, 1>(uri, 1, 2, "WebEngineSettings", QObject::tr("Cannot create a separate instance of WebEngineSettings")); qmlRegisterSingletonType<QQuickWebEngineSingleton>(uri, 1, 1, "WebEngine", webEngineSingletonProvider); qmlRegisterUncreatableType<QQuickWebEngineHistory>(uri, 1, 1, "NavigationHistory", QObject::tr("Cannot create a separate instance of NavigationHistory")); |