summaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets
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
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')
-rw-r--r--examples/webenginewidgets/demobrowser/browserapplication.cpp2
-rw-r--r--examples/webenginewidgets/demobrowser/tabwidget.cpp27
-rw-r--r--examples/webenginewidgets/demobrowser/tabwidget.h3
3 files changed, 32 insertions, 0 deletions
diff --git a/examples/webenginewidgets/demobrowser/browserapplication.cpp b/examples/webenginewidgets/demobrowser/browserapplication.cpp
index ba46fe092..4a2a5e70e 100644
--- a/examples/webenginewidgets/demobrowser/browserapplication.cpp
+++ b/examples/webenginewidgets/demobrowser/browserapplication.cpp
@@ -284,6 +284,8 @@ void BrowserApplication::loadSettings()
defaultSettings->setAttribute(QWebEngineSettings::PluginsEnabled, settings.value(QLatin1String("enablePlugins"), true).toBool());
+ defaultSettings->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);
+
QString css = settings.value(QLatin1String("userStyleSheet")).toString();
setUserStyleSheet(defaultProfile, css, mainWindow());
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;
diff --git a/examples/webenginewidgets/demobrowser/tabwidget.h b/examples/webenginewidgets/demobrowser/tabwidget.h
index 5d7f1e2c5..66ab1ab0f 100644
--- a/examples/webenginewidgets/demobrowser/tabwidget.h
+++ b/examples/webenginewidgets/demobrowser/tabwidget.h
@@ -49,6 +49,7 @@
QT_BEGIN_NAMESPACE
class QWebEngineDownloadItem;
class QWebEngineProfile;
+class QWebEngineView;
QT_END_NAMESPACE
/*
@@ -213,6 +214,7 @@ private slots:
void lineEditReturnPressed();
void windowCloseRequested();
void moveTab(int fromIndex, int toIndex);
+ void fullScreenRequested(bool);
private:
QAction *m_recentlyClosedTabsAction;
@@ -230,6 +232,7 @@ private:
QStackedWidget *m_lineEdits;
TabBar *m_tabBar;
QWebEngineProfile *m_profile;
+ QWebEngineView *m_fullScreenView;
};
#endif // TABWIDGET_H