From f2dee911572a6ec93c63b9b4e376f841bb91e306 Mon Sep 17 00:00:00 2001 From: Andreas Sturmlechner Date: Fri, 22 Feb 2019 19:13:11 +0100 Subject: [PATCH] Fix build against poppler-0.72 --- CMakeLists.txt | 3 +++ src/config-kitinerary.h.cmake | 1 + src/pdfdocument.cpp | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index bdc2e2b..b970de7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,9 @@ if(TARGET Poppler::Core) if (${Poppler_VERSION} VERSION_GREATER 0.57) set(HAVE_POPPLER_0_58 ON) endif() + if (${Poppler_VERSION} VERSION_GREATER 0.71) + set(HAVE_POPPLER_0_72 ON) + endif() endif() if (TARGET zxing::libzxing) set(HAVE_ZXING ON) diff --git a/src/config-kitinerary.h.cmake b/src/config-kitinerary.h.cmake index 4576266..0dc8969 100644 --- a/src/config-kitinerary.h.cmake +++ b/src/config-kitinerary.h.cmake @@ -22,6 +22,7 @@ #cmakedefine HAVE_POPPLER #cmakedefine HAVE_POPPLER_0_58 +#cmakedefine HAVE_POPPLER_0_72 #cmakedefine HAVE_ZXING #cmakedefine HAVE_KCAL #cmakedefine HAVE_KCONTACTS diff --git a/src/pdfdocument.cpp b/src/pdfdocument.cpp index fb4b98b..9f23645 100644 --- a/src/pdfdocument.cpp +++ b/src/pdfdocument.cpp @@ -306,7 +306,11 @@ QString PdfPage::textInRect(double left, double top, double right, double bottom const auto pageRect = d->m_doc->m_popplerDoc->getPage(d->m_pageNum + 1)->getCropBox(); std::unique_ptr s(device->getText(ratio(pageRect->x1, pageRect->x2, left), ratio(pageRect->y1, pageRect->y2, top), ratio(pageRect->x1, pageRect->x2, right), ratio(pageRect->y1, pageRect->y2, bottom))); +#ifdef HAVE_POPPLER_0_58 + return QString::fromUtf8(s->c_str()); +#else return QString::fromUtf8(s->getCString()); +#endif #else Q_UNUSED(left); Q_UNUSED(top); @@ -440,7 +444,11 @@ PdfDocument* PdfDocument::fromData(const QByteArray &data, QObject *parent) PdfPage page; page.d->m_pageNum = i; page.d->m_doc = doc->d.get(); +#ifdef HAVE_POPPLER_0_72 + page.d->m_text = QString::fromUtf8(s->c_str()); +#else page.d->m_text = QString::fromUtf8(s->getCString()); +#endif page.d->m_images = std::move(device->m_images); for (auto it = page.d->m_images.begin(); it != page.d->m_images.end(); ++it) { (*it).d->m_page = page.d.data(); -- 2.19.2