From 17ee6a55f3178324b123e301e4854c413b640738 Mon Sep 17 00:00:00 2001
From: Shawn Rutledge <shawn.rutledge@qt.io>
Date: Mon, 3 Feb 2020 15:09:54 +0100
Subject: [PATCH] QPdfDocument::pageSize(): add checkPageComplete()

checkPageComplete() calls FPDFAvail_IsPageAvail(), which does some
initialization that is necessary before PDFium is able to provide any
information about that page.  The static readImage() function in
qquickpixmapcache.cpp calls QImageReader::size() before rendering,
to determine the size of the image that will be read, and that
ends up calling QPdfDocument::pageSize(); so it's important to
"go to" that page before attempting to read its size.  In summary,
checkPageComplete() is the "go to page" function that must be called
before any other page-specific function.

Amends 9231d3444555945297857ee4aae05919083ea479

Change-Id: Idf5ba9d013b62395c284d055fbfe835fe949df79
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
---
 src/pdf/qpdfdocument.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pdf/qpdfdocument.cpp b/src/pdf/qpdfdocument.cpp
index 37eeb8426..69dc6e9ad 100644
--- a/src/pdf/qpdfdocument.cpp
+++ b/src/pdf/qpdfdocument.cpp
@@ -608,7 +608,7 @@ int QPdfDocument::pageCount() const
 QSizeF QPdfDocument::pageSize(int page) const
 {
     QSizeF result;
-    if (!d->doc)
+    if (!d->doc || !d->checkPageComplete(page))
         return result;
 
     const QPdfMutexLocker lock;
-- 
GitLab