diff --git a/core/page.cpp b/core/page.cpp index cf5a5b28c..c3d9614af 100644 --- a/core/page.cpp +++ b/core/page.cpp @@ -116,10 +116,12 @@ void PagePrivate::imageRotationDone( RotationJob * job ) PixmapObject &object = it.value(); (*object.m_pixmap) = QPixmap::fromImage( job->image() ); object.m_rotation = job->rotation(); + object.m_isPartialPixmap = job->isPartialUpdate(); } else { PixmapObject object; object.m_pixmap = new QPixmap( QPixmap::fromImage( job->image() ) ); object.m_rotation = job->rotation(); + object.m_isPartialPixmap = job->isPartialUpdate(); m_pixmaps.insert( job->observer(), object ); } @@ -235,6 +237,9 @@ bool Page::hasPixmap( DocumentObserver *observer, int width, int height, const N if ( width == -1 || height == -1 ) return true; + if ( it.value().m_isPartialPixmap ) + return false; + const QPixmap *pixmap = it.value().m_pixmap; return (pixmap->width() == width && pixmap->height() == height); @@ -554,6 +559,7 @@ void PagePrivate::setPixmap( DocumentObserver *observer, QPixmap *pixmap, const } it.value().m_pixmap = pixmap; it.value().m_rotation = m_rotation; + it.value().m_isPartialPixmap = isPartialPixmap; } else { // it can happen that we get a setPixmap while closing and thus the page controller is gone if ( m_doc->m_pageController ) diff --git a/core/page.h b/core/page.h index 10a777b7f..1567ccc78 100644 --- a/core/page.h +++ b/core/page.h @@ -141,8 +141,9 @@ class OKULARCORE_EXPORT Page void setBoundingBox( const NormalizedRect& bbox ); /** - * Returns whether the page of size @p width x @p height has a @p pixmap + * Returns whether the page of size @p width x @p height has a @p pixmap * in the region given by @p rect for the given @p observer + * If there is a partially rendered pixmap the answer is false. */ bool hasPixmap( DocumentObserver *observer, int width = -1, int height = -1, const NormalizedRect &rect = NormalizedRect() ) const; diff --git a/core/page_p.h b/core/page_p.h index 7e35d3e10..17f27b44a 100644 --- a/core/page_p.h +++ b/core/page_p.h @@ -146,6 +146,7 @@ class PagePrivate public: QPixmap *m_pixmap = nullptr; Rotation m_rotation; + bool m_isPartialPixmap = false; }; QMap< DocumentObserver*, PixmapObject > m_pixmaps; QMap< const DocumentObserver*, TilesManager *> m_tilesManagers; diff --git a/generators/chm/org.kde.okular-chm.metainfo.xml b/generators/chm/org.kde.okular-chm.metainfo.xml index f8e0cf836..e46bb5aab 100644 --- a/generators/chm/org.kde.okular-chm.metainfo.xml +++ b/generators/chm/org.kde.okular-chm.metainfo.xml @@ -81,6 +81,7 @@ https://okular.kde.org + diff --git a/generators/comicbook/org.kde.okular-comicbook.metainfo.xml b/generators/comicbook/org.kde.okular-comicbook.metainfo.xml index 05b9deb51..44c3ffe49 100644 --- a/generators/comicbook/org.kde.okular-comicbook.metainfo.xml +++ b/generators/comicbook/org.kde.okular-comicbook.metainfo.xml @@ -84,6 +84,7 @@ https://okular.kde.org + diff --git a/generators/djvu/org.kde.okular-djvu.metainfo.xml b/generators/djvu/org.kde.okular-djvu.metainfo.xml index 1fdb3700f..b6eb5948e 100644 --- a/generators/djvu/org.kde.okular-djvu.metainfo.xml +++ b/generators/djvu/org.kde.okular-djvu.metainfo.xml @@ -81,6 +81,7 @@ https://okular.kde.org + diff --git a/generators/dvi/org.kde.okular-dvi.metainfo.xml b/generators/dvi/org.kde.okular-dvi.metainfo.xml index 2751f2739..ae7e007de 100644 --- a/generators/dvi/org.kde.okular-dvi.metainfo.xml +++ b/generators/dvi/org.kde.okular-dvi.metainfo.xml @@ -83,6 +83,7 @@ https://okular.kde.org + diff --git a/generators/epub/org.kde.okular-epub.metainfo.xml b/generators/epub/org.kde.okular-epub.metainfo.xml index 38e59bffe..4997e6d58 100644 --- a/generators/epub/org.kde.okular-epub.metainfo.xml +++ b/generators/epub/org.kde.okular-epub.metainfo.xml @@ -81,6 +81,7 @@ https://okular.kde.org + diff --git a/generators/fax/org.kde.okular-fax.metainfo.xml b/generators/fax/org.kde.okular-fax.metainfo.xml index 0c39fb89b..8bb6f0e79 100644 --- a/generators/fax/org.kde.okular-fax.metainfo.xml +++ b/generators/fax/org.kde.okular-fax.metainfo.xml @@ -82,6 +82,7 @@ https://okular.kde.org + diff --git a/generators/fictionbook/org.kde.okular-fb.metainfo.xml b/generators/fictionbook/org.kde.okular-fb.metainfo.xml index ff6547555..fa2e19e00 100644 --- a/generators/fictionbook/org.kde.okular-fb.metainfo.xml +++ b/generators/fictionbook/org.kde.okular-fb.metainfo.xml @@ -81,6 +81,7 @@ https://okular.kde.org + diff --git a/generators/kimgio/org.kde.okular-kimgio.metainfo.xml b/generators/kimgio/org.kde.okular-kimgio.metainfo.xml index 57eb0223f..8b1f96d91 100644 --- a/generators/kimgio/org.kde.okular-kimgio.metainfo.xml +++ b/generators/kimgio/org.kde.okular-kimgio.metainfo.xml @@ -104,6 +104,7 @@ https://okular.kde.org + diff --git a/generators/markdown/org.kde.okular-md.metainfo.xml b/generators/markdown/org.kde.okular-md.metainfo.xml index fec3ca6cb..c6e40be2a 100644 --- a/generators/markdown/org.kde.okular-md.metainfo.xml +++ b/generators/markdown/org.kde.okular-md.metainfo.xml @@ -79,6 +79,7 @@ https://okular.kde.org + diff --git a/generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml b/generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml index de45b2e5f..dc1156db0 100644 --- a/generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml +++ b/generators/mobipocket/org.kde.okular-mobipocket.metainfo.xml @@ -104,6 +104,7 @@ https://okular.kde.org + diff --git a/generators/ooo/org.kde.okular-ooo.metainfo.xml b/generators/ooo/org.kde.okular-ooo.metainfo.xml index 4867bea27..9d65b799d 100644 --- a/generators/ooo/org.kde.okular-ooo.metainfo.xml +++ b/generators/ooo/org.kde.okular-ooo.metainfo.xml @@ -79,6 +79,7 @@ https://okular.kde.org + diff --git a/generators/plucker/org.kde.okular-plucker.metainfo.xml b/generators/plucker/org.kde.okular-plucker.metainfo.xml index 06ec07e61..fb2425c17 100644 --- a/generators/plucker/org.kde.okular-plucker.metainfo.xml +++ b/generators/plucker/org.kde.okular-plucker.metainfo.xml @@ -81,6 +81,7 @@ https://okular.kde.org + diff --git a/generators/poppler/org.kde.okular-poppler.metainfo.xml b/generators/poppler/org.kde.okular-poppler.metainfo.xml index c530bc29a..5795bf920 100644 --- a/generators/poppler/org.kde.okular-poppler.metainfo.xml +++ b/generators/poppler/org.kde.okular-poppler.metainfo.xml @@ -84,6 +84,7 @@ https://okular.kde.org + diff --git a/generators/spectre/org.kde.okular-spectre.metainfo.xml b/generators/spectre/org.kde.okular-spectre.metainfo.xml index b0cdf6967..6a1fae75a 100644 --- a/generators/spectre/org.kde.okular-spectre.metainfo.xml +++ b/generators/spectre/org.kde.okular-spectre.metainfo.xml @@ -88,6 +88,7 @@ https://okular.kde.org + diff --git a/generators/tiff/org.kde.okular-tiff.metainfo.xml b/generators/tiff/org.kde.okular-tiff.metainfo.xml index be4e8ce61..e7b8ec1df 100644 --- a/generators/tiff/org.kde.okular-tiff.metainfo.xml +++ b/generators/tiff/org.kde.okular-tiff.metainfo.xml @@ -81,6 +81,7 @@ https://okular.kde.org + diff --git a/generators/txt/org.kde.okular-txt.metainfo.xml b/generators/txt/org.kde.okular-txt.metainfo.xml index 1960ed888..9556fdcae 100644 --- a/generators/txt/org.kde.okular-txt.metainfo.xml +++ b/generators/txt/org.kde.okular-txt.metainfo.xml @@ -80,6 +80,7 @@ https://okular.kde.org + diff --git a/generators/xps/org.kde.okular-xps.metainfo.xml b/generators/xps/org.kde.okular-xps.metainfo.xml index 6accca86b..3abd793bd 100644 --- a/generators/xps/org.kde.okular-xps.metainfo.xml +++ b/generators/xps/org.kde.okular-xps.metainfo.xml @@ -81,6 +81,7 @@ https://okular.kde.org + diff --git a/mobile/app/org.kde.okular.kirigami.appdata.xml b/mobile/app/org.kde.okular.kirigami.appdata.xml index 128f35ee0..1978ecb60 100644 --- a/mobile/app/org.kde.okular.kirigami.appdata.xml +++ b/mobile/app/org.kde.okular.kirigami.appdata.xml @@ -249,6 +249,7 @@ okularkirigami + diff --git a/shell/org.kde.okular.appdata.xml b/shell/org.kde.okular.appdata.xml index 088a0ab44..a6021d2ab 100644 --- a/shell/org.kde.okular.appdata.xml +++ b/shell/org.kde.okular.appdata.xml @@ -299,6 +299,7 @@ https://www.microsoft.com/store/apps/9n41msq1wnm8 +