diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-10-23 17:29:19 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-11-08 07:15:03 +0000 |
commit | 7db70f1e85f628f78df84eb195473fb315e812fe (patch) | |
tree | cafdfd0b01e9d2e3acb82f84858d1f8984227a3a /src/webengine | |
parent | 0ef5bbc16781fc0d0ea72e396b1d6e23cd588dc9 (diff) |
Implement CopyFromSurface
Means we can get screenshots in devtools.
Change-Id: I7b50d6ac5a54d236573bcf5f58ae872bd50dccad
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'src/webengine')
3 files changed, 13 insertions, 0 deletions
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp index abdd4a8b3..1176573fd 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp @@ -376,4 +376,15 @@ void RenderWidgetHostViewQtDelegateQuick::onHide() m_client->forwardEvent(&event); } +bool RenderWidgetHostViewQtDelegateQuick::copySurface(const QRect &rect, const QSize &size, QImage &image) +{ + image = QQuickItem::window()->grabWindow(); + if (image.isNull()) + return false; + QRect subrect = !rect.isEmpty() ? rect : image.rect(); + image = image.copy(subrect); + image = image.scaled(size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + return true; +} + } // namespace QtWebEngineCore diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.h b/src/webengine/render_widget_host_view_qt_delegate_quick.h index 2d9dc991b..6f6cd1509 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quick.h +++ b/src/webengine/render_widget_host_view_qt_delegate_quick.h @@ -82,6 +82,7 @@ public: void setInputMethodHints(Qt::InputMethodHints) override { } // The QtQuick view doesn't have a backbuffer of its own and doesn't need this void setClearColor(const QColor &) override { } + bool copySurface(const QRect &rect, const QSize &size, QImage &image) override; protected: bool event(QEvent *event) override; diff --git a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h index df241bf3a..36e4ddd8a 100644 --- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h +++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h @@ -78,6 +78,7 @@ public: void inputMethodStateChanged(bool, bool) override {} void setInputMethodHints(Qt::InputMethodHints) override { } void setClearColor(const QColor &) override { } + bool copySurface(const QRect &, const QSize &, QImage &) override { return false; } private: QScopedPointer<RenderWidgetHostViewQtDelegate> m_realDelegate; |