diff --git a/cmake/modules/FindPoppler.cmake b/cmake/modules/FindPoppler.cmake index 091c452dc..6389a625d 100644 --- a/cmake/modules/FindPoppler.cmake +++ b/cmake/modules/FindPoppler.cmake @@ -125,9 +125,21 @@ int main() } " HAVE_POPPLER_0_24) +check_cxx_source_compiles(" +#include +int main() +{ + Poppler::Page *p = 0; + p->annotations( QSet() << Poppler::Annotation::ASound ); + return 0; +} +" HAVE_POPPLER_0_28) + set(CMAKE_REQUIRED_INCLUDES) set(CMAKE_REQUIRED_LIBRARIES) - if (HAVE_POPPLER_0_24) + if (HAVE_POPPLER_0_28) + set(popplerVersionMessage "0.28") + elseif (HAVE_POPPLER_0_24) set(popplerVersionMessage "0.24") elseif (HAVE_POPPLER_0_22) set(popplerVersionMessage "0.22") @@ -137,9 +149,9 @@ int main() set(popplerVersionMessage "0.16") elseif (HAVE_POPPLER_0_12_1) set(popplerVersionMessage "0.12.1") - else (HAVE_POPPLER_0_24) + else (HAVE_POPPLER_0_28) set(popplerVersionMessage "0.5.4") - endif (HAVE_POPPLER_0_24) + endif (HAVE_POPPLER_0_28) if (NOT Poppler_FIND_QUIETLY) message(STATUS "Found Poppler-Qt4: ${POPPLER_LIBRARY}, (>= ${popplerVersionMessage})") endif (NOT Poppler_FIND_QUIETLY) diff --git a/generators/poppler/config-okular-poppler.h.cmake b/generators/poppler/config-okular-poppler.h.cmake index 4f9bbbc88..1e8ff9ed3 100644 --- a/generators/poppler/config-okular-poppler.h.cmake +++ b/generators/poppler/config-okular-poppler.h.cmake @@ -12,3 +12,6 @@ /* Defined if we have the 0.24 version of the Poppler library */ #cmakedefine HAVE_POPPLER_0_24 1 + +/* Defined if we have the 0.28 version of the Poppler library */ +#cmakedefine HAVE_POPPLER_0_28 1 diff --git a/generators/poppler/generator_pdf.cpp b/generators/poppler/generator_pdf.cpp index a363842ab..e1496af30 100644 --- a/generators/poppler/generator_pdf.cpp +++ b/generators/poppler/generator_pdf.cpp @@ -1429,7 +1429,25 @@ void PDFGenerator::addSynopsisChildren( QDomNode * parent, QDomNode * parentDest void PDFGenerator::addAnnotations( Poppler::Page * popplerPage, Okular::Page * page ) { +#ifdef HAVE_POPPLER_0_28 + QSet subtypes; + subtypes << Poppler::Annotation::AFileAttachment + << Poppler::Annotation::ASound + << Poppler::Annotation::AMovie + << Poppler::Annotation::AWidget + << Poppler::Annotation::AScreen + << Poppler::Annotation::AText + << Poppler::Annotation::ALine + << Poppler::Annotation::AGeom + << Poppler::Annotation::AHighlight + << Poppler::Annotation::AInk + << Poppler::Annotation::AStamp + << Poppler::Annotation::ACaret; + + QList popplerAnnotations = popplerPage->annotations( subtypes ); +#else QList popplerAnnotations = popplerPage->annotations(); +#endif foreach(Poppler::Annotation *a, popplerAnnotations) {