diff options
Diffstat (limited to 'src/webenginewidgets/api/qwebengineview.cpp')
-rw-r--r-- | src/webenginewidgets/api/qwebengineview.cpp | 17 |
1 files changed, 11 insertions, 6 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 } |