summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-06-08 13:18:16 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-06-24 09:31:16 +0200
commit233d61a0cb0b66ce2f3d548046acd90cdfa39cc3 (patch)
tree0878d0b87549a0332d6fe723a3789db1145b31db /src/webenginewidgets/api
parentc094bf3e297b5b80e47eb578440409c5d1e5c6bc (diff)
Switch printToPdf to std::function
Pick-to: 6.2 Change-Id: I2660e60665542681bc9b0a479ce7fd9d93b896ae Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'src/webenginewidgets/api')
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp17
-rw-r--r--src/webenginewidgets/api/qwebengineview.h3
-rw-r--r--src/webenginewidgets/api/qwebengineview_p.h3
3 files changed, 13 insertions, 10 deletions
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 9d5639ca2..64acaf607 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -517,7 +517,8 @@ void QWebEngineViewPrivate::didPrintPage(quint64 requestId, QSharedPointer<QByte
if (!currentPrinter) {
if (!result.data())
return;
- m_callbacks.invoke(requestId, *(result.data()));
+ if (auto callback = m_pdfResultCallbacks.take(requestId))
+ callback(*(result.data()));
return;
}
@@ -545,7 +546,8 @@ void QWebEngineViewPrivate::didPrintPage(quint64 requestId, QSharedPointer<QByte
#else
// we should never enter this branch, but just for safe-keeping...
Q_UNUSED(result);
- m_callbacks.invoke(requestId, QByteArray());
+ if (auto callback = m_pdfResultCallbacks.take(requestId))
+ callback(QByteArray());
#endif
}
@@ -1006,21 +1008,24 @@ void QWebEngineView::printToPdf(const QString &filePath, const QPageLayout &layo
\since 6.2
*/
-void QWebEngineView::printToPdf(const QWebEngineCallback<const QByteArray&> &resultCallback, const QPageLayout &layout, const QPageRanges &ranges)
+void QWebEngineView::printToPdf(const std::function<void(const QByteArray&)> &resultCallback, const QPageLayout &layout, const QPageRanges &ranges)
{
Q_D(QWebEngineView);
#if QT_CONFIG(webengine_printing_and_pdf)
if (d->currentPrinter) {
qWarning("Cannot print to PDF while printing at the same time.");
- d->m_callbacks.invokeEmpty(resultCallback);
+ if (resultCallback)
+ resultCallback(QByteArray());
return;
}
page()->d_ptr->ensureInitialized();
quint64 requestId = page()->d_ptr->adapter->printToPDFCallbackResult(layout, ranges);
- d->m_callbacks.registerCallback(requestId, resultCallback);
+ d->m_pdfResultCallbacks.insert(requestId, resultCallback);
#else
Q_UNUSED(layout);
- d->m_callbacks.invokeEmpty(resultCallback);
+ Q_UNUSED(ranges);
+ if (resultCallback)
+ resultCallback(QByteArray());
#endif
}
diff --git a/src/webenginewidgets/api/qwebengineview.h b/src/webenginewidgets/api/qwebengineview.h
index b43552211..30b24f38d 100644
--- a/src/webenginewidgets/api/qwebengineview.h
+++ b/src/webenginewidgets/api/qwebengineview.h
@@ -46,7 +46,6 @@
#include <QtWidgets/qwidget.h>
#include <QtWebEngineWidgets/qtwebenginewidgetsglobal.h>
-#include <QtWebEngineCore/qwebenginecallback.h>
#include <QtWebEngineCore/qwebenginecontextmenurequest.h>
#include <QtWebEngineCore/qwebenginehttprequest.h>
#include <QtWebEngineCore/qwebenginepage.h>
@@ -113,7 +112,7 @@ public:
void printToPdf(const QString &filePath,
const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()),
const QPageRanges &ranges = {});
- void printToPdf(const QWebEngineCallback<const QByteArray&> &resultCallback,
+ void printToPdf(const std::function<void(const QByteArray&)> &resultCallback,
const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()),
const QPageRanges &ranges = {});
void print(QPrinter *printer);
diff --git a/src/webenginewidgets/api/qwebengineview_p.h b/src/webenginewidgets/api/qwebengineview_p.h
index d49b0e74e..af395fb39 100644
--- a/src/webenginewidgets/api/qwebengineview_p.h
+++ b/src/webenginewidgets/api/qwebengineview_p.h
@@ -52,7 +52,6 @@
//
#include <QtWebEngineWidgets/qwebengineview.h>
-#include <QtWebEngineCore/private/qwebenginecallback_p.h>
#include <QtWebEngineCore/private/qwebenginepage_p.h>
#include <QtWebEngineCore/qwebenginecontextmenurequest.h>
#include <QtWidgets/qaccessiblewidget.h>
@@ -118,7 +117,7 @@ public:
#if QT_CONFIG(webengine_printing_and_pdf)
QPrinter *currentPrinter;
#endif
- mutable QtWebEngineCore::CallbackDirectory m_callbacks;
+ QMap<quint64, std::function<void(const QByteArray&)>> m_pdfResultCallbacks;
};
#ifndef QT_NO_ACCESSIBILITY