diff options
author | Andras Becsi <andras.becsi@theqtcompany.com> | 2015-05-11 14:32:01 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-06-08 10:56:08 +0000 |
commit | 8c3178b64d992435cb90a426ff075fee6778e04a (patch) | |
tree | e53836e4824073851f94d4c6fcfac99526f0a100 /src/webenginewidgets/api/qwebenginepage.h | |
parent | bfef77e3ca0d82253fb70ff178ff5a826c671d55 (diff) |
Move QWebEngineCallback to core API and templatize CallbackDirectory
This undocumented helper template will also be utilized by the
core API since Chromium's content API heavily relies on callbacks.
To make the internal CallbackDirectory easily extendable with new
types, templatize its callback registration and dispatching functions
to be able to replace its type switches and the internal union.
Change-Id: I3f636fef48973ac95253f1c1bd396550286e571e
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Diffstat (limited to 'src/webenginewidgets/api/qwebenginepage.h')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 4281a70a0..16b33a196 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -39,6 +39,7 @@ #include <QtWebEngineWidgets/qtwebenginewidgetsglobal.h> #include <QtWebEngineWidgets/qwebenginecertificateerror.h> +#include <QtWebEngineCore/qwebenginecallback.h> #include <QtCore/qobject.h> #include <QtCore/qurl.h> @@ -56,37 +57,6 @@ class QWebEngineProfile; class QWebEngineScriptCollection; class QWebEngineSettings; -namespace QtWebEnginePrivate { - -template <typename T> -class QWebEngineCallbackPrivateBase : public QSharedData { -public: - virtual ~QWebEngineCallbackPrivateBase() {} - virtual void operator()(T) = 0; -}; - -template <typename T, typename F> -class QWebEngineCallbackPrivate : public QWebEngineCallbackPrivateBase<T> { -public: - QWebEngineCallbackPrivate(F callable) : m_callable(callable) {} - virtual void operator()(T value) Q_DECL_OVERRIDE { m_callable(value); } -private: - F m_callable; -}; - -} // namespace QtWebEnginePrivate - -template <typename T> -class QWebEngineCallback { -public: - template <typename F> - QWebEngineCallback(F f) : d(new QtWebEnginePrivate::QWebEngineCallbackPrivate<T, F>(f)) { } - QWebEngineCallback() { } -private: - QExplicitlySharedDataPointer<QtWebEnginePrivate::QWebEngineCallbackPrivateBase<T> > d; - friend class QWebEnginePage; -}; - class QWEBENGINEWIDGETS_EXPORT QWebEnginePage : public QObject { Q_OBJECT Q_PROPERTY(QString selectedText READ selectedText) |