From 54e5e0eb261534cdaa50817ef50a5334f1fcfdf5 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 28 Aug 2015 15:43:02 +0200 Subject: Full-screen support in the demo browser Move a webpage requesting fullscreen to a fullscreen webview. Change-Id: Id333b0ffa78bebb20f1ea98f8665b819ad2fce0e Reviewed-by: Joerg Bornemann --- .../webenginewidgets/demobrowser/tabwidget.cpp | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'examples/webenginewidgets/demobrowser/tabwidget.cpp') diff --git a/examples/webenginewidgets/demobrowser/tabwidget.cpp b/examples/webenginewidgets/demobrowser/tabwidget.cpp index c093b804a..7d6b1e793 100644 --- a/examples/webenginewidgets/demobrowser/tabwidget.cpp +++ b/examples/webenginewidgets/demobrowser/tabwidget.cpp @@ -213,6 +213,7 @@ TabWidget::TabWidget(QWidget *parent) , m_lineEdits(0) , m_tabBar(new TabBar(this)) , m_profile(QWebEngineProfile::defaultProfile()) + , m_fullScreenView(0) { setElideMode(Qt::ElideRight); @@ -315,6 +316,8 @@ void TabWidget::currentChanged(int index) this, SIGNAL(loadProgress(int))); disconnect(oldWebView->page()->profile(), SIGNAL(downloadRequested(QWebEngineDownloadItem*)), this, SLOT(downloadRequested(QWebEngineDownloadItem*))); + disconnect(oldWebView->page(), SIGNAL(fullScreenRequested(bool)), + this, SLOT(fullScreenRequested(bool))); } #if defined(QWEBENGINEVIEW_STATUSBARMESSAGE) @@ -327,6 +330,8 @@ void TabWidget::currentChanged(int index) this, SIGNAL(loadProgress(int))); connect(webView->page()->profile(), SIGNAL(downloadRequested(QWebEngineDownloadItem*)), this, SLOT(downloadRequested(QWebEngineDownloadItem*))); + connect(webView->page(), SIGNAL(fullScreenRequested(bool)), + this, SLOT(fullScreenRequested(bool))); for (int i = 0; i < m_actions.count(); ++i) { WebActionMapper *mapper = m_actions[i]; @@ -342,6 +347,28 @@ void TabWidget::currentChanged(int index) webView->setFocus(); } +void TabWidget::fullScreenRequested(bool fullscreen) +{ + if (fullscreen) { + if (!m_fullScreenView) + m_fullScreenView = new QWebEngineView(); + WebPage *webPage = qobject_cast(sender()); + webPage->setView(m_fullScreenView); + m_fullScreenView->showFullScreen(); + m_fullScreenView->raise(); + } else { + if (!m_fullScreenView) + return; + WebPage *webPage = qobject_cast(sender()); + WebView *oldWebView = this->webView(m_lineEdits->currentIndex()); + webPage->setView(oldWebView); + raise(); + m_fullScreenView->hide(); + delete m_fullScreenView; + m_fullScreenView = 0; + } +} + QAction *TabWidget::newTabAction() const { return m_newTabAction; -- cgit v1.2.3