From 61bdfb046700068afe36007ede3dcba1104099a3 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 11 Apr 2016 16:34:57 +0200 Subject: Remove "Save Page" web action from the standard context menu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Kai Koehne --- examples/webenginewidgets/demobrowser/webview.cpp | 11 +++++++---- src/webengine/api/qquickwebengineview.cpp | 8 -------- src/webenginewidgets/api/qwebenginepage.cpp | 3 --- 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)); -- cgit v1.2.3