summaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets/demobrowser/tabwidget.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2015-08-28 15:43:02 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-09-03 22:05:16 +0000
commit54e5e0eb261534cdaa50817ef50a5334f1fcfdf5 (patch)
tree3315f5321222a83bdc25a51d0e45879e9b42dfde /examples/webenginewidgets/demobrowser/tabwidget.cpp
parent18193133648a1100939534fd4f7be367ac102710 (diff)
Full-screen support in the demo browser
Move a webpage requesting fullscreen to a fullscreen webview. Change-Id: Id333b0ffa78bebb20f1ea98f8665b819ad2fce0e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'examples/webenginewidgets/demobrowser/tabwidget.cpp')
-rw-r--r--examples/webenginewidgets/demobrowser/tabwidget.cpp27
1 files changed, 27 insertions, 0 deletions
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<WebPage*>(sender());
+ webPage->setView(m_fullScreenView);
+ m_fullScreenView->showFullScreen();
+ m_fullScreenView->raise();
+ } else {
+ if (!m_fullScreenView)
+ return;
+ WebPage *webPage = qobject_cast<WebPage*>(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;