diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/webenginewidgets/demobrowser/webview.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/examples/webenginewidgets/demobrowser/webview.cpp b/examples/webenginewidgets/demobrowser/webview.cpp index 35f765b5c..cac34577c 100644 --- a/examples/webenginewidgets/demobrowser/webview.cpp +++ b/examples/webenginewidgets/demobrowser/webview.cpp @@ -65,9 +65,7 @@ #include <QtWidgets/QMessageBox> #include <QtGui/QMouseEvent> -#if defined(QWEBENGINEPAGE_HITTESTCONTENT) -#include <QWebEngineHitTestResult> -#endif +#include <QWebEngineContextMenuData> #ifndef QT_NO_UITOOLS #include <QtUiTools/QUiLoader> @@ -381,18 +379,18 @@ void WebView::setPage(WebPage *_page) void WebView::contextMenuEvent(QContextMenuEvent *event) { - QMenu *menu = page()->createStandardContextMenu(); - const QList<QAction*> actions = menu->actions(); - QList<QAction*>::const_iterator it = qFind(actions.cbegin(), actions.cend(), page()->action(QWebEnginePage::OpenLinkInThisWindow)); - if (it != actions.cend()) { - (*it)->setText(tr("Open Link in This Window")); - ++it; - menu->insertAction(*it, page()->action(QWebEnginePage::OpenLinkInNewWindow)); - menu->insertAction(*it, page()->action(QWebEnginePage::OpenLinkInNewTab)); - menu->insertAction(*it, page()->action(QWebEnginePage::OpenLinkInNewBackgroundTab)); + if (page()->contextMenuData().linkUrl().isValid()) { + QMenu *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; } - - menu->popup(event->globalPos()); + QWebEngineView::contextMenuEvent(event); } void WebView::wheelEvent(QWheelEvent *event) |