diff options
-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)); |