diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2015-08-18 11:31:52 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-08-26 09:43:51 +0000 |
commit | 3320515bb4578769dee8b0f0d6ab4ad77284f383 (patch) | |
tree | 54d1c09ba520e6b70a726c8d4f03000d51cf741e /src/webenginewidgets | |
parent | 0bd5956e6199c71ab19b0d7a0b91c453140e72fc (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/webenginewidgets')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 19 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 5 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginesettings.cpp | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginesettings.h | 3 |
5 files changed, 28 insertions, 4 deletions
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 { |