diff options
Diffstat (limited to 'src/webenginewidgets')
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 24 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 4 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage_p.h | 4 |
3 files changed, 30 insertions, 2 deletions
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 8192f38ed..1a3cf5dde 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -151,6 +151,16 @@ void QWebEnginePagePrivate::didRunJavaScript(const QVariant& result, quint64 req (*m_variantCallbacks.take(requestId))(result); } +void QWebEnginePagePrivate::didFetchDocumentMarkup(const QString& result, quint64 requestId) +{ + (*m_stringCallbacks.take(requestId))(result); +} + +void QWebEnginePagePrivate::didFetchDocumentInnerText(const QString& result, quint64 requestId) +{ + (*m_stringCallbacks.take(requestId))(result); +} + void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const { #ifdef QT_NO_ACTION @@ -448,6 +458,20 @@ void QWebEnginePage::load(const QUrl& url) d->adapter->load(url); } +void QWebEnginePage::toHtml(const QWebEngineCallback<const QString &> &resultCallback) const +{ + Q_D(const QWebEnginePage); + quint64 requestId = d->adapter->fetchDocumentMarkup(); + d->m_stringCallbacks.insert(requestId, resultCallback.d); +} + +void QWebEnginePage::toPlainText(const QWebEngineCallback<const QString &> &resultCallback) const +{ + Q_D(const QWebEnginePage); + quint64 requestId = d->adapter->fetchDocumentInnerText(); + d->m_stringCallbacks.insert(requestId, resultCallback.d); +} + void QWebEnginePage::setHtml(const QString &html, const QUrl &baseUrl) { Q_D(QWebEnginePage); diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index c33119571..d92e87cc6 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -434,8 +434,8 @@ public: void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl()); void addToJavaScriptWindowObject(const QString &name, QObject *object, ValueOwnership ownership = QtOwnership); - QString toHtml() const; - QString toPlainText() const; + void toHtml(const QWebEngineCallback<const QString &> &resultCallback) const; + void toPlainText(const QWebEngineCallback<const QString &> &resultCallback) const; QString title() const; void setUrl(const QUrl &url); diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h index 656eb4788..60317972a 100644 --- a/src/webenginewidgets/api/qwebenginepage_p.h +++ b/src/webenginewidgets/api/qwebenginepage_p.h @@ -81,6 +81,8 @@ public: virtual void javascriptDialog(QSharedPointer<JavaScriptDialogController>) Q_DECL_OVERRIDE; virtual void runFileChooser(FileChooserMode, const QString &defaultFileName, const QStringList &acceptedMimeTypes) Q_DECL_OVERRIDE; virtual void didRunJavaScript(const QVariant& result, quint64 requestId) Q_DECL_OVERRIDE; + virtual void didFetchDocumentMarkup(const QString& result, quint64 requestId) Q_DECL_OVERRIDE; + virtual void didFetchDocumentInnerText(const QString& result, quint64 requestId) Q_DECL_OVERRIDE; void updateAction(QWebEnginePage::WebAction) const; void updateNavigationActions(); @@ -94,7 +96,9 @@ public: WebEngineContextMenuData m_menuData; typedef QtWebEnginePrivate::QWebEngineCallbackPrivateBase<const QVariant&> VariantCallback; + typedef QtWebEnginePrivate::QWebEngineCallbackPrivateBase<const QString&> StringCallback; mutable QHash<quint64, QExplicitlySharedDataPointer<VariantCallback> > m_variantCallbacks; + mutable QHash<quint64, QExplicitlySharedDataPointer<StringCallback> > m_stringCallbacks; }; QT_END_NAMESPACE |