diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2015-08-28 15:43:02 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-09-03 22:05:16 +0000 |
commit | 54e5e0eb261534cdaa50817ef50a5334f1fcfdf5 (patch) | |
tree | 3315f5321222a83bdc25a51d0e45879e9b42dfde /examples/webenginewidgets | |
parent | 18193133648a1100939534fd4f7be367ac102710 (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.cpp | 2 | ||||
-rw-r--r-- | examples/webenginewidgets/demobrowser/tabwidget.cpp | 27 | ||||
-rw-r--r-- | examples/webenginewidgets/demobrowser/tabwidget.h | 3 |
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 |