diff options
author | Joerg Bornemann <joerg.bornemann@theqtcompany.com> | 2016-04-11 16:34:57 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@theqtcompany.com> | 2016-04-13 13:15:44 +0000 |
commit | 61bdfb046700068afe36007ede3dcba1104099a3 (patch) | |
tree | 7209d2d30260b0d623ce94e48fc4507d91f8338c | |
parent | 5f8756195c48436c67a9afe63c25210ea5fa2979 (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.cpp | 11 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 8 | ||||
-rw-r--r-- | 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)); |