diff --git a/generators/comicbook/document.cpp b/generators/comicbook/document.cpp index 6f4010fa8..27396bab9 100644 --- a/generators/comicbook/document.cpp +++ b/generators/comicbook/document.cpp @@ -9,6 +9,7 @@ #include "document.h" +#include #include #include #include @@ -235,7 +236,14 @@ QImage Document::pageImage(int page) const const KArchiveFile *entry = static_cast(mArchiveDir->entry(mPageMap[page])); if (entry) { std::unique_ptr dev(entry->createDevice()); - QImageReader reader(dev.get()); + // This could simply be + // QImageReader reader(dev.get()); + // but due to https://codereview.qt-project.org/c/qt/qtbase/+/349174 and https://invent.kde.org/frameworks/karchive/-/merge_requests/14 + // it can not, so it will have to be like this at least until Qt6 + // Test with https://bugs.kde.org/attachment.cgi?id=74039 (it's a cbz with a png inside) + QBuffer b; + b.setData(dev->readAll()); + QImageReader reader(&b); reader.setAutoTransform(true); return reader.read(); }