diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-09-07 16:06:06 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-10-19 08:38:01 +0000 |
commit | 0e9555838c83ccf5a6a28ee99d6fd556ebf5b3b2 (patch) | |
tree | 3b1709a0e5cfb6ba76f7d532fbd2dfac85393068 /examples/webenginewidgets | |
parent | 38a426f21c0d6e47bdc05e5541b79c48cf967a0c (diff) |
Fix ABI breakage due to fullscreen feature
We can not add a new virtual method without breaking ABI on some
platforms, instead we need to use a setter.
The API now uses a request object, and a separate signal for canceling,
since canceling can not be rejected.
Change-Id: If8069c343e86926293c30e8de179bf4e3cbd5886
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Diffstat (limited to 'examples/webenginewidgets')
-rw-r--r-- | examples/webenginewidgets/demobrowser/tabwidget.cpp | 19 | ||||
-rw-r--r-- | examples/webenginewidgets/demobrowser/tabwidget.h | 2 |
2 files changed, 12 insertions, 9 deletions
diff --git a/examples/webenginewidgets/demobrowser/tabwidget.cpp b/examples/webenginewidgets/demobrowser/tabwidget.cpp index 9e08426f1..4e2073b11 100644 --- a/examples/webenginewidgets/demobrowser/tabwidget.cpp +++ b/examples/webenginewidgets/demobrowser/tabwidget.cpp @@ -48,10 +48,11 @@ #include "urllineedit.h" #include "webview.h" +#include <QWebEngineDownloadItem> +#include <QWebEngineProfile> +#include <QWebEngineFullScreenRequest> #include <QtCore/QMimeData> #include <QtGui/QClipboard> -#include <QtWebEngineWidgets/QWebEngineDownloadItem> -#include <QtWebEngineWidgets/QWebEngineProfile> #include <QtWidgets/QCompleter> #include <QtWidgets/QListView> #include <QtWidgets/QMenu> @@ -321,8 +322,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))); + disconnect(oldWebView->page(), SIGNAL(fullScreenRequested(const QWebEngineFullScreenRequest&)), + this, SLOT(fullScreenRequested(const QWebEngineFullScreenRequest&))); } #if defined(QWEBENGINEVIEW_STATUSBARMESSAGE) @@ -335,8 +336,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))); + connect(webView->page(), SIGNAL(fullScreenRequested(const QWebEngineFullScreenRequest&)), + this, SLOT(fullScreenRequested(const QWebEngineFullScreenRequest&))); for (int i = 0; i < m_actions.count(); ++i) { WebActionMapper *mapper = m_actions[i]; @@ -352,13 +353,14 @@ void TabWidget::currentChanged(int index) webView->setFocus(); } -void TabWidget::fullScreenRequested(bool fullscreen) +void TabWidget::fullScreenRequested(const QWebEngineFullScreenRequest &request) { - if (fullscreen) { + if (request.toggleOn()) { if (!m_fullScreenView) m_fullScreenView = new QWebEngineView(); WebPage *webPage = qobject_cast<WebPage*>(sender()); webPage->setView(m_fullScreenView); + request.accept(); m_fullScreenView->showFullScreen(); m_fullScreenView->raise(); } else { @@ -367,6 +369,7 @@ void TabWidget::fullScreenRequested(bool fullscreen) WebPage *webPage = qobject_cast<WebPage*>(sender()); WebView *oldWebView = this->webView(m_lineEdits->currentIndex()); webPage->setView(oldWebView); + request.accept(); raise(); m_fullScreenView->hide(); } diff --git a/examples/webenginewidgets/demobrowser/tabwidget.h b/examples/webenginewidgets/demobrowser/tabwidget.h index 0f2a20c34..3a1fe7171 100644 --- a/examples/webenginewidgets/demobrowser/tabwidget.h +++ b/examples/webenginewidgets/demobrowser/tabwidget.h @@ -216,7 +216,7 @@ private slots: void lineEditReturnPressed(); void windowCloseRequested(); void moveTab(int fromIndex, int toIndex); - void fullScreenRequested(bool); + void fullScreenRequested(const QWebEngineFullScreenRequest& request); private: QAction *m_recentlyClosedTabsAction; |