summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@theqtcompany.com>2016-04-11 16:34:57 +0200
committerKai Koehne <kai.koehne@theqtcompany.com>2016-04-13 13:15:44 +0000
commit61bdfb046700068afe36007ede3dcba1104099a3 (patch)
tree7209d2d30260b0d623ce94e48fc4507d91f8338c
parent5f8756195c48436c67a9afe63c25210ea5fa2979 (diff)
Remove "Save Page" web action from the standard context menu
The SavePage web action is only useful if the user code reacts on the downloadRequested signal. Also, having SavePage available is not useful for e.g. hybrid applications. Extend the demobrowser example to show how to add the SavePage web action to the context menu. Change-Id: I979bcd9f5a25d2cae07ef819663afde17784440b Task-number: QTBUG-52370 Reviewed-by: Michael BrĂ¼ning <michael.bruning@theqtcompany.com> Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
-rw-r--r--examples/webenginewidgets/demobrowser/webview.cpp11
-rw-r--r--src/webengine/api/qquickwebengineview.cpp8
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp3
3 files changed, 7 insertions, 15 deletions
diff --git a/examples/webenginewidgets/demobrowser/webview.cpp b/examples/webenginewidgets/demobrowser/webview.cpp
index 8033c3ff5..192df6836 100644
--- a/examples/webenginewidgets/demobrowser/webview.cpp
+++ b/examples/webenginewidgets/demobrowser/webview.cpp
@@ -371,18 +371,21 @@ void WebView::setPage(WebPage *_page)
void WebView::contextMenuEvent(QContextMenuEvent *event)
{
+ QMenu *menu;
if (page()->contextMenuData().linkUrl().isValid()) {
- QMenu *menu = new QMenu(this);
+ menu = new QMenu(this);
menu->addAction(page()->action(QWebEnginePage::OpenLinkInThisWindow));
menu->addAction(page()->action(QWebEnginePage::OpenLinkInNewWindow));
menu->addAction(page()->action(QWebEnginePage::OpenLinkInNewBackgroundTab));
menu->addSeparator();
menu->addAction(page()->action(QWebEnginePage::DownloadLinkToDisk));
menu->addAction(page()->action(QWebEnginePage::CopyLinkToClipboard));
- menu->popup(event->globalPos());
- return;
+ } else {
+ menu = page()->createStandardContextMenu();
}
- QWebEngineView::contextMenuEvent(event);
+ if (page()->contextMenuData().selectedText().isEmpty())
+ menu->addAction(page()->action(QWebEnginePage::SavePage));
+ menu->popup(event->globalPos());
}
void WebView::wheelEvent(QWheelEvent *event)
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 4fe6eb939..b33654788 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -229,14 +229,6 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu
item = new MenuItemHandler(menu);
QObject::connect(item, &MenuItemHandler::triggered, q, &QQuickWebEngineView::reload);
ui()->addMenuItem(item, QQuickWebEngineView::tr("Reload"), QStringLiteral("view-refresh"));
-
- if (!data.linkUrl.isValid()) {
- item = new MenuItemHandler(menu);
- QObject::connect(item, &MenuItemHandler::triggered, [q] {
- q->triggerWebAction(QQuickWebEngineView::SavePage);
- });
- ui()->addMenuItem(item, QQuickWebEngineView::tr("Save"));
- }
} else {
item = new MenuItemHandler(menu);
QObject::connect(item, &MenuItemHandler::triggered, [q] { q->triggerWebAction(QQuickWebEngineView::Copy); });
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 1d7660711..00dffa3a2 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -1332,9 +1332,6 @@ QMenu *QWebEnginePage::createStandardContextMenu()
action = new QAction(QIcon::fromTheme(QStringLiteral("view-refresh")), tr("&Reload"), menu);
connect(action, &QAction::triggered, d->view, &QWebEngineView::reload);
menu->addAction(action);
-
- if (!contextMenuData.linkUrl.isValid())
- menu->addAction(QWebEnginePage::action(SavePage));
} else {
menu->addAction(QWebEnginePage::action(Copy));
menu->addAction(QWebEnginePage::action(Unselect));