summaryrefslogtreecommitdiffstats
path: root/src/webengine
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-10-23 17:29:19 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-11-08 07:15:03 +0000
commit7db70f1e85f628f78df84eb195473fb315e812fe (patch)
treecafdfd0b01e9d2e3acb82f84858d1f8984227a3a /src/webengine
parent0ef5bbc16781fc0d0ea72e396b1d6e23cd588dc9 (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')
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quick.cpp11
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quick.h1
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quickwindow.h1
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;