diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/widgets/Api/qwebenginepage.cpp | 37 | ||||
-rw-r--r-- | lib/widgets/widgets.pro | 2 |
2 files changed, 33 insertions, 6 deletions
diff --git a/lib/widgets/Api/qwebenginepage.cpp b/lib/widgets/Api/qwebenginepage.cpp index 4fafb17ff..106e46949 100644 --- a/lib/widgets/Api/qwebenginepage.cpp +++ b/lib/widgets/Api/qwebenginepage.cpp @@ -333,6 +333,36 @@ bool QWebEnginePagePrivate::javascriptDialog(JavascriptDialogType type, const QS return false; } +namespace { +class SaveToClipboardFunctor +{ + QString m_text; +public: + SaveToClipboardFunctor(const QString &text) + : m_text(text) + {} + void operator()() const + { + qApp->clipboard()->setText(m_text); + } +}; + +class LoadUrlFunctor +{ + QWebEnginePage *m_page; + QUrl m_url; +public: + LoadUrlFunctor(QWebEnginePage *page, const QUrl &url) + : m_page(page) + , m_url(url) + {} + void operator()() const + { + m_page->load(m_url); + } +}; +} + QMenu *QWebEnginePage::createStandardContextMenu() { Q_D(QWebEnginePage); @@ -355,18 +385,17 @@ QMenu *QWebEnginePage::createStandardContextMenu() menu->addAction(action); } else { action = new QAction(tr("Copy..."), menu); - // FIXME: We probably can't keep "cheating" with lambdas, but for now it keeps this patch smaller ;) - connect(action, &QAction::triggered, [=]() { qApp->clipboard()->setText(contextMenuData.selectedText); }); + connect(action, &QAction::triggered, SaveToClipboardFunctor(contextMenuData.selectedText)); menu->addAction(action); } if (!contextMenuData.linkText.isEmpty() && contextMenuData.linkUrl.isValid()) { menu->addSeparator(); action = new QAction(tr("Navigate to..."), menu); - connect(action, &QAction::triggered, [=]() { load(contextMenuData.linkUrl); }); + connect(action, &QAction::triggered, LoadUrlFunctor(this, contextMenuData.linkUrl)); menu->addAction(action); action = new QAction(tr("Copy link address"), menu); - connect(action, &QAction::triggered, [=]() { qApp->clipboard()->setText(contextMenuData.linkUrl.toString()); }); + connect(action, &QAction::triggered, SaveToClipboardFunctor(contextMenuData.linkUrl.toString())); menu->addAction(action); } return menu; diff --git a/lib/widgets/widgets.pro b/lib/widgets/widgets.pro index 5da1be091..0eb48ada5 100644 --- a/lib/widgets/widgets.pro +++ b/lib/widgets/widgets.pro @@ -9,8 +9,6 @@ MODULE = webenginewidgets # For our export macros DEFINES += QT_BUILD_WEBENGINEWIDGETS_LIB -CONFIG += c++11 - QT += widgets QT_PRIVATE += widgets-private gui-private core-private |