diff --git a/CHANGELOG.md b/CHANGELOG.md index 8de31e0e..61147e86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ Version counting is based on semantic versioning (Major.Feature.Patch) ### All apps * Run logger in a dedicated thread to avoid segfaults at application shutdown +* Add support for poppler-qt6 pdf backend ## 9.10 diff --git a/YACReaderLibrary/initial_comic_info_extractor.cpp b/YACReaderLibrary/initial_comic_info_extractor.cpp index d25d84c4..63ee6a5b 100644 --- a/YACReaderLibrary/initial_comic_info_extractor.cpp +++ b/YACReaderLibrary/initial_comic_info_extractor.cpp @@ -27,7 +27,7 @@ void InitialComicInfoExtractor::extract() #ifndef NO_PDF if (fi.suffix().compare("pdf", Qt::CaseInsensitive) == 0) { #if defined Q_OS_MAC && defined USE_PDFKIT - auto pdfComic = std::make_unique(); + auto pdfComic = std::make_unique(); if (!pdfComic->openComic(_fileSource)) { return; } @@ -64,7 +64,6 @@ void InitialComicInfoExtractor::extract() saveCover(_target, p); } else if (_target != "") { QLOG_WARN() << "Extracting cover: requested cover index greater than numPages " << _fileSource; - } } return; diff --git a/common/comic.cpp b/common/comic.cpp index 26b3949e..059c6203 100644 --- a/common/comic.cpp +++ b/common/comic.cpp @@ -808,8 +808,13 @@ void PDFComic::process() return; } #else + +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + pdfComic = Poppler::Document::load(_path); +#else auto _pdfComic = Poppler::Document::load(_path); pdfComic = std::unique_ptr(_pdfComic); +#endif if (!pdfComic) { moveToThread(QCoreApplication::instance()->thread()); @@ -877,7 +882,7 @@ void PDFComic::renderPage(int page) QImage img = pdfComic->getPage(page); if (!img.isNull()) { #else - std::unique_ptr pdfpage (pdfComic->page(page)); + std::unique_ptr pdfpage(pdfComic->page(page)); if (pdfpage) { QImage img = pdfpage->renderToImage(150, 150); #endif diff --git a/common/comic.h b/common/comic.h index 9be08d43..ae753a4c 100644 --- a/common/comic.h +++ b/common/comic.h @@ -12,7 +12,7 @@ #include "pdf_comic.h" #endif // NO_PDF class ComicDB; -//#define EXTENSIONS << "*.jpg" << "*.jpeg" << "*.png" << "*.gif" << "*.tiff" << "*.tif" << "*.bmp" Comic::getSupportedImageFormats() + //#define EXTENSIONS_LITERAL << ".jpg" << ".jpeg" << ".png" << ".gif" << ".tiff" << ".tif" << ".bmp" //Comic::getSupportedImageLiteralFormats() class Comic : public QObject { @@ -172,6 +172,7 @@ private: std::unique_ptr pdfComic; #endif void renderPage(int page); + // void run(); public: diff --git a/common/pdf_comic.h b/common/pdf_comic.h index 13febf5c..f2d8ff8c 100644 --- a/common/pdf_comic.h +++ b/common/pdf_comic.h @@ -5,6 +5,7 @@ #include #include #include +#include #if defined Q_OS_MAC && defined USE_PDFKIT class MacOSXPDFComic @@ -45,6 +46,10 @@ private: QFile pdfFile; }; #else +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) +#include +#else #include "poppler-qt5.h" +#endif // QT_VERSION #endif // Q_OS_MAC #endif // PDF_COMIC_H diff --git a/dependencies/pdf_backend.pri b/dependencies/pdf_backend.pri index a14885bb..0905ede6 100644 --- a/dependencies/pdf_backend.pri +++ b/dependencies/pdf_backend.pri @@ -55,18 +55,31 @@ CONFIG(poppler) { LIBS += -L$$PWD/poppler/dependencies/bin } if(unix|mingw):!macx { - !contains(QT_CONFIG, no-pkg-config):packagesExist(poppler-qt5) { - message("Using system provided installation of poppler-qt5 found by pkg-config.") - CONFIG += link_pkgconfig - PKGCONFIG += poppler-qt5 - } else:!macx:exists(/usr/include/poppler/qt5) { - message("Using system provided installation of poppler-qt5.") - INCLUDEPATH += /usr/include/poppler/qt5 - LIBS += -lpoppler-qt5 + greaterThan (QT_MAJOR_VERSION, 5) { + !contains(QT_CONFIG, no-pkg-config):packagesExist(poppler-qt6) { + message("Using system provided installation of poppler-qt6 found by pkg-config.") + CONFIG += link_pkgconfig + PKGCONFIG += poppler-qt6 + } else:!macx:exists(/usr/include/poppler/qt6) { + message("Using system provided installation of poppler-qt6.") + INCLUDEPATH += /usr/include/poppler/qt6 + LIBS += -lpoppler-qt6 + } else { + error("Could not find poppler-qt6") + } } else { - error("Could not find poppler-qt5") + !contains(QT_CONFIG, no-pkg-config):packagesExist(poppler-qt5) { + message("Using system provided installation of poppler-qt5 found by pkg-config.") + CONFIG += link_pkgconfig + PKGCONFIG += poppler-qt5 + } else:!macx:exists(/usr/include/poppler/qt5) { + message("Using system provided installation of poppler-qt5.") + INCLUDEPATH += /usr/include/poppler/qt5 + LIBS += -lpoppler-qt5 + } else { + error("Could not find poppler-qt5") + } } - } unix:macx { error (Poppler backend is currently not supported on macOS)