From ca89a4725dbea5c52d3c5d39bcf1a2ad5b67aa2a Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Mon, 25 Nov 2013 15:09:02 +0100 Subject: Use functors instead of lambda expressions when creating a context menu. Change-Id: I09cea3230da7d0b7a218108668bd562f2cb57384 Reviewed-by: Jocelyn Turcotte --- lib/widgets/Api/qwebenginepage.cpp | 37 +++++++++++++++++++++++++++++++++---- 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 -- cgit v1.2.3