summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/widgets/browser/browsermainwindow.cpp26
-rw-r--r--examples/widgets/fancybrowser/mainwindow.cpp26
2 files changed, 32 insertions, 20 deletions
diff --git a/examples/widgets/browser/browsermainwindow.cpp b/examples/widgets/browser/browsermainwindow.cpp
index ac8426d9a..26b38c921 100644
--- a/examples/widgets/browser/browsermainwindow.cpp
+++ b/examples/widgets/browser/browsermainwindow.cpp
@@ -71,15 +71,21 @@
#include <QtCore/QDebug>
-#if __cplusplus >= 201103L
-#include <functional>
-using std::bind;
-namespace placeholders = std::placeholders;
-#else
-#include <tr1/functional>
-using std::tr1::bind;
-namespace placeholders = std::tr1::placeholders;
-#endif
+template<typename Arg, typename R, typename C>
+struct InvokeWrapper {
+ R *receiver;
+ void (C::*memberFun)(const Arg&);
+ void operator()(const Arg &result) {
+ (receiver->*memberFun)(result);
+ }
+};
+
+template<typename Arg, typename R, typename C>
+InvokeWrapper<Arg, R, C> invoke(R *receiver, void (C::*memberFun)(const Arg&))
+{
+ InvokeWrapper<Arg, R, C> wrapper = {receiver, memberFun};
+ return wrapper;
+}
BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags)
: QMainWindow(parent, flags)
@@ -827,7 +833,7 @@ void BrowserMainWindow::slotViewPageSource()
view->setAttribute(Qt::WA_DeleteOnClose);
view->show();
- currentTab()->page()->toHtml(bind(&QPlainTextEdit::setPlainText, view, placeholders::_1));
+ currentTab()->page()->toHtml(invoke(view, &QPlainTextEdit::setPlainText));
}
void BrowserMainWindow::slotHome()
diff --git a/examples/widgets/fancybrowser/mainwindow.cpp b/examples/widgets/fancybrowser/mainwindow.cpp
index b9d5a8364..9462539e5 100644
--- a/examples/widgets/fancybrowser/mainwindow.cpp
+++ b/examples/widgets/fancybrowser/mainwindow.cpp
@@ -42,15 +42,21 @@
#include <QtWebEngineWidgets>
#include "mainwindow.h"
-#if __cplusplus >= 201103L
-#include <functional>
-using std::bind;
-namespace placeholders = std::placeholders;
-#else
-#include <tr1/functional>
-using std::tr1::bind;
-namespace placeholders = std::tr1::placeholders;
-#endif
+template<typename Arg, typename R, typename C>
+struct InvokeWrapper {
+ R *receiver;
+ void (C::*memberFun)(const Arg&);
+ void operator()(const Arg &result) {
+ (receiver->*memberFun)(result);
+ }
+};
+
+template<typename Arg, typename R, typename C>
+InvokeWrapper<Arg, R, C> invoke(R *receiver, void (C::*memberFun)(const Arg&))
+{
+ InvokeWrapper<Arg, R, C> wrapper = {receiver, memberFun};
+ return wrapper;
+}
//! [1]
@@ -120,7 +126,7 @@ void MainWindow::viewSource()
textEdit->move(this->geometry().center() - textEdit->rect().center());
textEdit->show();
- view->page()->toHtml(bind(&QTextEdit::setPlainText, textEdit, placeholders::_1));
+ view->page()->toHtml(invoke(textEdit, &QTextEdit::setPlainText));
}
//! [4]