diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2022-02-14 20:55:35 +0100 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2022-03-07 17:40:13 +0100 |
commit | 85f82185ef5102a2dbe3b2e437b9723e1652ce57 (patch) | |
tree | a4ebcf3edb5c0af7c864e6ee076ae8be16e63b30 | |
parent | 913796df52a27f6de50d2c13f7401bf5d1f74926 (diff) |
QtQuick.Pdf: fix rendering on high-dpi screens
Default scale is 1 point = 1 pixel, but that means logical pixels, since
we have that facade everywhere else in Qt. We use image.sourceSize to
make it render more pixels than it otherwise would, according to
devicePixelRatio.
Change-Id: I3ff05f050c9b60c14b8208d61717e796ddd56220
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
-rw-r--r-- | src/pdfquick/PdfMultiPageView.qml | 2 | ||||
-rw-r--r-- | src/pdfquick/PdfPageView.qml | 2 | ||||
-rw-r--r-- | src/pdfquick/PdfScrollablePageView.qml | 3 |
3 files changed, 4 insertions, 3 deletions
diff --git a/src/pdfquick/PdfMultiPageView.qml b/src/pdfquick/PdfMultiPageView.qml index 1b5a8d189..a55f21a0f 100644 --- a/src/pdfquick/PdfMultiPageView.qml +++ b/src/pdfquick/PdfMultiPageView.qml @@ -165,7 +165,7 @@ Item { property real renderScale: root.renderScale property real oldRenderScale: 1 onRenderScaleChanged: { - image.sourceSize.width = paper.pagePointSize.width * renderScale + image.sourceSize.width = paper.pagePointSize.width * renderScale * Screen.devicePixelRatio image.sourceSize.height = 0 paper.scale = 1 searchHighlights.update() diff --git a/src/pdfquick/PdfPageView.qml b/src/pdfquick/PdfPageView.qml index bcb286c0c..b70860aaf 100644 --- a/src/pdfquick/PdfPageView.qml +++ b/src/pdfquick/PdfPageView.qml @@ -157,7 +157,7 @@ Rectangle { property size centerInSize property real pageScale: image.paintedWidth / document.pagePointSize(navigationStack.currentPage).width function reRenderIfNecessary() { - const newSourceWidth = image.sourceSize.width * root.scale + const newSourceWidth = image.sourceSize.width * root.scale * Screen.devicePixelRatio const ratio = newSourceWidth / image.sourceSize.width if (ratio > 1.1 || ratio < 0.9) { image.sourceSize.width = newSourceWidth diff --git a/src/pdfquick/PdfScrollablePageView.qml b/src/pdfquick/PdfScrollablePageView.qml index 9e458397e..8c91db5f7 100644 --- a/src/pdfquick/PdfScrollablePageView.qml +++ b/src/pdfquick/PdfScrollablePageView.qml @@ -126,7 +126,8 @@ Flickable { } onRenderScaleChanged: { - image.sourceSize.width = document.pagePointSize(navigationStack.currentPage).width * renderScale + image.sourceSize.width = document.pagePointSize(navigationStack.currentPage).width * + renderScale * Screen.devicePixelRatio image.sourceSize.height = 0 paper.scale = 1 const currentLocation = Qt.point((root.contentX + root.width / 2) / root.renderScale, |