summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-08-25 17:16:49 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-08-27 14:03:41 +0000
commit281f8c2e4a5787aadf4c978139358141f626b8a4 (patch)
tree833a481c1290d3eea4ea8f29bd7f20b387581507
parent8cd47a6df005ae61dbc366b884bebeb0ec49e889 (diff)
Add exit full screen web action
Adds a web action that can be used for exiting fullscreen mode, and include it the context menu whenever in fullscreen mode. Change-Id: I7aa729a86f9ba9df476766cd40f87d9385948fea Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-rw-r--r--src/core/web_contents_adapter.cpp6
-rw-r--r--src/core/web_contents_adapter.h1
-rw-r--r--src/webengine/api/qquickwebengineview.cpp8
-rw-r--r--src/webengine/api/qquickwebengineview_p.h1
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp8
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h1
6 files changed, 25 insertions, 0 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 1e0d261da..a01164f1a 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -800,6 +800,12 @@ void WebContentsAdapter::inspectElementAt(const QPoint &location)
}
}
+void WebContentsAdapter::exitFullScreen()
+{
+ Q_D(WebContentsAdapter);
+ d->webContents->ExitFullscreen();
+}
+
void WebContentsAdapter::wasShown()
{
Q_D(WebContentsAdapter);
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 1e78f8e77..ca2f32ebe 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -126,6 +126,7 @@ public:
void executeMediaPlayerActionAt(const QPoint &location, MediaPlayerAction action, bool enable);
void inspectElementAt(const QPoint &location);
+ void exitFullScreen();
void wasShown();
void wasHidden();
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 9a8a6ccb3..e123bda8f 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -266,6 +266,11 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu
QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::CopyImageToClipboard); });
ui()->addMenuItem(item, QObject::tr("Copy Image"));
}
+ if (isFullScreen()) {
+ item = new MenuItemHandler(menu);
+ QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::ExitFullScreen); });
+ ui()->addMenuItem(item, QObject::tr("Exit Full Screen Mode"));
+ }
// FIXME: expose the context menu data as an attached property to make this more useful
if (contextMenuExtraItems) {
@@ -1292,6 +1297,9 @@ void QQuickWebEngineView::triggerWebAction(WebAction action)
case InspectElement:
d->adapter->inspectElementAt(d->contextMenuData.pos);
break;
+ case ExitFullScreen:
+ d->adapter->exitFullScreen();
+ break;
default:
Q_UNREACHABLE();
}
diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
index 934303722..c7625d209 100644
--- a/src/webengine/api/qquickwebengineview_p.h
+++ b/src/webengine/api/qquickwebengineview_p.h
@@ -224,6 +224,7 @@ public:
DownloadMediaToDisk,
InspectElement,
+ ExitFullScreen,
WebActionCount
};
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 1cf51df72..472e95871 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -595,6 +595,9 @@ QAction *QWebEnginePage::action(WebAction action) const
case InspectElement:
text = tr("Inspect Element");
break;
+ case ExitFullScreen:
+ text = tr("Exit Full Screen Mode");
+ break;
default:
break;
}
@@ -762,6 +765,9 @@ void QWebEnginePage::triggerAction(WebAction action, bool)
case InspectElement:
d->adapter->inspectElementAt(d->m_menuData.pos);
break;
+ case ExitFullScreen:
+ d->adapter->exitFullScreen();
+ break;
default:
Q_UNREACHABLE();
}
@@ -968,6 +974,8 @@ QMenu *QWebEnginePage::createStandardContextMenu()
} else if (contextMenuData.mediaType == WebEngineContextMenuData::MediaTypeCanvas) {
menu->addAction(QWebEnginePage::action(CopyImageToClipboard));
}
+ if (d->isFullScreen())
+ menu->addAction(QWebEnginePage::action(ExitFullScreen));
return menu;
}
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index c324f3737..d027998ee 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -107,6 +107,7 @@ public:
DownloadMediaToDisk,
InspectElement,
+ ExitFullScreen,
WebActionCount
};