From 34a7c2cde9ea3fb2d4c297d60a4e16c9d99cdf9b Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Thu, 5 Jul 2018 16:12:23 +0200 Subject: Add printRequest() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds printRequested() signal for web content. This signal is emitted on javascript window.print(). This change updates also qt printview manager implementation, fixes a corner case and warnings about ipc unconsumed attachments. Task-number: QTBUG-69237 Task-number: QTBUG-53745 Change-Id: I0c47b732e27e929ac6db237fb562b7d5f9b959c2 Reviewed-by: Michael BrĂ¼ning --- src/webengine/api/qquickwebengineview.cpp | 8 ++++++++ src/webengine/api/qquickwebengineview_p.h | 1 + src/webengine/api/qquickwebengineview_p_p.h | 1 + src/webengine/doc/src/webengineview_lgpl.qdoc | 10 ++++++++++ 4 files changed, 20 insertions(+) (limited to 'src/webengine') diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index aaa8d58c5..f24ba1d7d 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -640,6 +640,14 @@ WebContentsAdapter *QQuickWebEngineViewPrivate::webContentsAdapter() return adapter.data(); } +void QQuickWebEngineViewPrivate::printRequested() +{ + Q_Q(QQuickWebEngineView); + QTimer::singleShot(0, q, [q]() { + Q_EMIT q->printRequested(); + }); +} + WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const { return m_settings->d_ptr.data(); diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index d400fc75e..f60fdcddf 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -549,6 +549,7 @@ Q_SIGNALS: Q_REVISION(7) void inspectedViewChanged(); Q_REVISION(7) void devToolsViewChanged(); Q_REVISION(7) void registerProtocolHandlerRequested(const QWebEngineRegisterProtocolHandlerRequest &request); + Q_REVISION(8) void printRequested(); #if QT_CONFIG(webengine_testsupport) void testSupportChanged(); diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index 7e5d1e64f..b030b2a29 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -155,6 +155,7 @@ public: QtWebEngineCore::ProfileAdapter *profileAdapter() override; QtWebEngineCore::WebContentsAdapter *webContentsAdapter() override; + void printRequested() override; void updateAction(QQuickWebEngineView::WebAction) const; void adoptWebContents(QtWebEngineCore::WebContentsAdapter *webContents); diff --git a/src/webengine/doc/src/webengineview_lgpl.qdoc b/src/webengine/doc/src/webengineview_lgpl.qdoc index 741dee2f7..cc826a0d9 100644 --- a/src/webengine/doc/src/webengineview_lgpl.qdoc +++ b/src/webengine/doc/src/webengineview_lgpl.qdoc @@ -1462,3 +1462,13 @@ \sa WebEngineAction */ + +/*! + \qmlsignal WebEngineView::printRequest + \since QtWebEngine 1.8 + + This signal is emitted when the JavaScript \c{window.print()} method is called. + Typically, the signal handler can simply call printToPdf(). + + \sa printToPdf +*/ -- cgit v1.2.3