diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2022-06-16 19:06:04 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-06-18 00:12:34 +0000 |
commit | 9157578c5cde635d5e55a56e4ad677bff423c457 (patch) | |
tree | 44142037c3e5e7a75534f1313041d978ee42fb78 /src/qmltest | |
parent | 5d9da33ee67710df907f867c96468f1584ad087c (diff) |
Quick test lib: Account for DPR when grabbing sub-image
Otherwise, the item that we are trying to grab lives in non-pixel
coordinates, so we end up with a sub-image that is smaller than needed
and incorrectly translated.
Fixes: QTBUG-98914
Change-Id: Ic36b4d2cb0de5ef50a726c2ee3207c95d06b6a05
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 47790977f53400d981d7086b8594937ad6ee8e20)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/qmltest')
-rw-r--r-- | src/qmltest/quicktestresult.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/qmltest/quicktestresult.cpp b/src/qmltest/quicktestresult.cpp index e4ef4e68ae..80b3f4b067 100644 --- a/src/qmltest/quicktestresult.cpp +++ b/src/qmltest/quicktestresult.cpp @@ -786,7 +786,8 @@ QObject *QuickTestResult::grabImage(QQuickItem *item) if (item && item->window()) { QQuickWindow *window = item->window(); QImage grabbed = window->grabWindow(); - QRectF rf(item->x(), item->y(), item->width(), item->height()); + const auto dpi = grabbed.devicePixelRatio(); + QRectF rf(item->x() * dpi, item->y() * dpi, item->width() * dpi, item->height() * dpi); rf = rf.intersected(QRectF(0, 0, grabbed.width(), grabbed.height())); QObject *o = new QuickTestImageObject(grabbed.copy(rf.toAlignedRect())); QQmlEngine::setContextForObject(o, qmlContext(this)); |