summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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));