summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2022-02-14 20:55:35 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2022-03-07 17:40:13 +0100
commit85f82185ef5102a2dbe3b2e437b9723e1652ce57 (patch)
treea4ebcf3edb5c0af7c864e6ee076ae8be16e63b30
parent913796df52a27f6de50d2c13f7401bf5d1f74926 (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.qml2
-rw-r--r--src/pdfquick/PdfPageView.qml2
-rw-r--r--src/pdfquick/PdfScrollablePageView.qml3
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,