summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2015-08-18 11:31:52 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-08-26 09:43:51 +0000
commit3320515bb4578769dee8b0f0d6ab4ad77284f383 (patch)
tree54d1c09ba520e6b70a726c8d4f03000d51cf741e /src
parent0bd5956e6199c71ab19b0d7a0b91c453140e72fc (diff)
Widgets: Add fullscreen support
Change-Id: Ibf1697d2bb3b3af5e7d71149305c5acffba43f0f Reviewed-by: Szabolcs David <davidsz@inf.u-szeged.hu> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/web_engine_settings.cpp4
-rw-r--r--src/core/web_engine_settings.h2
-rw-r--r--src/webengine/api/qquickwebengineprofile.cpp2
-rw-r--r--src/webengine/api/qquickwebenginesettings.cpp12
-rw-r--r--src/webengine/api/qquickwebenginesettings_p.h8
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp19
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h3
-rw-r--r--src/webenginewidgets/api/qwebenginepage_p.h5
-rw-r--r--src/webenginewidgets/api/qwebenginesettings.cpp2
-rw-r--r--src/webenginewidgets/api/qwebenginesettings.h3
10 files changed, 42 insertions, 18 deletions
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index b59ec7311..19558980b 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -214,7 +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);
+ m_attributes.insert(FullScreenSupportEnabled, false);
// Default fonts
QFont defaultFont;
@@ -280,7 +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);
+ 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 1d8f83184..29ef079b7 100644
--- a/src/core/web_engine_settings.h
+++ b/src/core/web_engine_settings.h
@@ -72,7 +72,7 @@ public:
ScrollAnimatorEnabled,
ErrorPageEnabled,
PluginsEnabled,
- FullscreenSupportEnabled,
+ 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 38b042fff..027ac3b22 100644
--- a/src/webengine/api/qquickwebengineprofile.cpp
+++ b/src/webengine/api/qquickwebengineprofile.cpp
@@ -58,7 +58,7 @@ QQuickWebEngineProfilePrivate::QQuickWebEngineProfilePrivate(BrowserContextAdapt
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);
+ 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 0da01d69d..9662a9ef9 100644
--- a/src/webengine/api/qquickwebenginesettings.cpp
+++ b/src/webengine/api/qquickwebenginesettings.cpp
@@ -228,9 +228,9 @@ bool QQuickWebEngineSettings::pluginsEnabled() const
Enabled by default.
*/
-bool QQuickWebEngineSettings::fullscreenSupportEnabled() const
+bool QQuickWebEngineSettings::fullScreenSupportEnabled() const
{
- return d_ptr->testAttribute(WebEngineSettings::FullscreenSupportEnabled);
+ return d_ptr->testAttribute(WebEngineSettings::FullScreenSupportEnabled);
}
/*!
@@ -345,12 +345,12 @@ void QQuickWebEngineSettings::setPluginsEnabled(bool on)
Q_EMIT pluginsEnabledChanged();
}
-void QQuickWebEngineSettings::setFullscreenSupportEnabled(bool on)
+void QQuickWebEngineSettings::setFullScreenSupportEnabled(bool on)
{
- bool wasOn = d_ptr->testAttribute(WebEngineSettings::FullscreenSupportEnabled);
- d_ptr->setAttribute(WebEngineSettings::FullscreenSupportEnabled, on);
+ bool wasOn = d_ptr->testAttribute(WebEngineSettings::FullScreenSupportEnabled);
+ d_ptr->setAttribute(WebEngineSettings::FullScreenSupportEnabled, on);
if (wasOn != on)
- Q_EMIT fullscreenSupportEnabledChanged();
+ Q_EMIT fullScreenSupportEnabledChanged();
}
void QQuickWebEngineSettings::setDefaultTextEncoding(QString encoding)
diff --git a/src/webengine/api/qquickwebenginesettings_p.h b/src/webengine/api/qquickwebenginesettings_p.h
index e3f28ac92..604e5693d 100644
--- a/src/webengine/api/qquickwebenginesettings_p.h
+++ b/src/webengine/api/qquickwebenginesettings_p.h
@@ -72,7 +72,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(bool fullScreenSupportEnabled READ fullScreenSupportEnabled WRITE setFullScreenSupportEnabled NOTIFY fullScreenSupportEnabledChanged REVISION 1)
Q_PROPERTY(QString defaultTextEncoding READ defaultTextEncoding WRITE setDefaultTextEncoding NOTIFY defaultTextEncodingChanged)
public:
@@ -90,7 +90,7 @@ public:
bool hyperlinkAuditingEnabled() const;
bool errorPageEnabled() const;
bool pluginsEnabled() const;
- bool fullscreenSupportEnabled() const;
+ bool fullScreenSupportEnabled() const;
QString defaultTextEncoding() const;
void setAutoLoadImages(bool on);
@@ -105,7 +105,7 @@ public:
void setHyperlinkAuditingEnabled(bool on);
void setErrorPageEnabled(bool on);
void setPluginsEnabled(bool on);
- void setFullscreenSupportEnabled(bool on);
+ void setFullScreenSupportEnabled(bool on);
void setDefaultTextEncoding(QString encoding);
signals:
@@ -121,7 +121,7 @@ signals:
void hyperlinkAuditingEnabledChanged();
void errorPageEnabledChanged();
void pluginsEnabledChanged();
- Q_REVISION(1) void fullscreenSupportEnabledChanged();
+ Q_REVISION(1) void fullScreenSupportEnabledChanged();
void defaultTextEncodingChanged();
private:
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index dd96c3890..1cf51df72 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -88,6 +88,7 @@ QWebEnginePagePrivate::QWebEnginePagePrivate(QWebEngineProfile *_profile)
, isLoading(false)
, scriptCollection(new QWebEngineScriptCollectionPrivate(browserContextAdapter()->userScriptController(), adapter.data()))
, m_backgroundColor(Qt::white)
+ , m_fullscreenRequested(false)
{
memset(actions, 0, sizeof(actions));
}
@@ -826,6 +827,18 @@ void QWebEnginePagePrivate::navigationRequested(int navigationType, const QUrl &
navigationRequestAction = accepted ? WebContentsAdapterClient::AcceptRequest : WebContentsAdapterClient::IgnoreRequest;
}
+void QWebEnginePagePrivate::requestFullScreen(bool fullScreen)
+{
+ Q_Q(QWebEnginePage);
+ m_fullscreenRequested = fullScreen;
+ Q_EMIT q->fullScreenRequested(fullScreen);
+}
+
+bool QWebEnginePagePrivate::isFullScreen() const
+{
+ return m_fullscreenRequested && q_ptr->isFullScreen();
+}
+
void QWebEnginePagePrivate::javascriptDialog(QSharedPointer<JavaScriptDialogController> controller)
{
Q_Q(QWebEnginePage);
@@ -1207,6 +1220,12 @@ bool QWebEnginePage::acceptNavigationRequest(const QUrl &url, NavigationType typ
return true;
}
+bool QWebEnginePage::isFullScreen()
+{
+ Q_D(const QWebEnginePage);
+ return d->view ? d->view->isFullScreen() : false;
+}
+
QT_END_NAMESPACE
#include "moc_qwebenginepage.cpp"
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index 1753cd75a..c324f3737 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -236,6 +236,7 @@ Q_SIGNALS:
void linkHovered(const QString &url);
void selectionChanged();
+ void fullScreenRequested(bool fullScreen);
void geometryChangeRequested(const QRect& geom);
void windowCloseRequested();
@@ -260,7 +261,7 @@ protected:
virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID);
virtual bool certificateError(const QWebEngineCertificateError &certificateError);
virtual bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame);
-
+ virtual bool isFullScreen();
private:
Q_DISABLE_COPY(QWebEnginePage)
Q_DECLARE_PRIVATE(QWebEnginePage)
diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h
index af37ae82f..84974d6a7 100644
--- a/src/webenginewidgets/api/qwebenginepage_p.h
+++ b/src/webenginewidgets/api/qwebenginepage_p.h
@@ -97,8 +97,8 @@ public:
virtual void close() Q_DECL_OVERRIDE;
virtual bool contextMenuRequested(const QtWebEngineCore::WebEngineContextMenuData &data) Q_DECL_OVERRIDE;
virtual void navigationRequested(int navigationType, const QUrl &url, int &navigationRequestAction, bool isMainFrame) Q_DECL_OVERRIDE;
- virtual void requestFullScreen(bool) Q_DECL_OVERRIDE { }
- virtual bool isFullScreen() const Q_DECL_OVERRIDE { return false; }
+ virtual void requestFullScreen(bool) Q_DECL_OVERRIDE;
+ virtual bool isFullScreen() const Q_DECL_OVERRIDE;
virtual void javascriptDialog(QSharedPointer<QtWebEngineCore::JavaScriptDialogController>) Q_DECL_OVERRIDE;
virtual void runFileChooser(QtWebEngineCore::FilePickerController *controller) Q_DECL_OVERRIDE;
virtual void didRunJavaScript(quint64 requestId, const QVariant& result) Q_DECL_OVERRIDE;
@@ -139,6 +139,7 @@ public:
bool isLoading;
QWebEngineScriptCollection scriptCollection;
QColor m_backgroundColor;
+ bool m_fullscreenRequested;
mutable QtWebEngineCore::CallbackDirectory m_callbacks;
mutable QAction *actions[QWebEnginePage::WebActionCount];
diff --git a/src/webenginewidgets/api/qwebenginesettings.cpp b/src/webenginewidgets/api/qwebenginesettings.cpp
index aaa93ab9f..1c45095b8 100644
--- a/src/webenginewidgets/api/qwebenginesettings.cpp
+++ b/src/webenginewidgets/api/qwebenginesettings.cpp
@@ -74,6 +74,8 @@ static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::Web
return WebEngineSettings::ErrorPageEnabled;
case QWebEngineSettings::PluginsEnabled:
return WebEngineSettings::PluginsEnabled;
+ case QWebEngineSettings::FullScreenSupportEnabled:
+ return WebEngineSettings::FullScreenSupportEnabled;
default:
return WebEngineSettings::UnsupportedInCoreSettings;
}
diff --git a/src/webenginewidgets/api/qwebenginesettings.h b/src/webenginewidgets/api/qwebenginesettings.h
index 50a93e393..327fd447b 100644
--- a/src/webenginewidgets/api/qwebenginesettings.h
+++ b/src/webenginewidgets/api/qwebenginesettings.h
@@ -59,7 +59,8 @@ public:
HyperlinkAuditingEnabled,
ScrollAnimatorEnabled,
ErrorPageEnabled,
- PluginsEnabled
+ PluginsEnabled,
+ FullScreenSupportEnabled
};
enum FontSize {