From: BenoƮt Minisini Date: Thu, 30 Jun 2022 13:29:02 +0000 (+0200) Subject: [GB.PDF] * BUG: Try to make 'gb.pdf' compile with poppler 22.06. X-Git-Tag: archive/raspbian/3.17.2-2+rpi1^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f379ccae1bc6720be5cbcfaedb97b7431759e12f;p=gambas3.git [GB.PDF] * BUG: Try to make 'gb.pdf' compile with poppler 22.06. Gbp-Pq: Name fix-build-poppler-22-06.patch --- diff --git a/gb.pdf/configure.ac b/gb.pdf/configure.ac index d2d0245a..7104d81a 100644 --- a/gb.pdf/configure.ac +++ b/gb.pdf/configure.ac @@ -10,7 +10,7 @@ PKG_PROG_PKG_CONFIG GB_COMPONENT_PKG_CONFIG( poppler, POPPLER, gb.pdf, [src], - 'poppler >= 0.20' + 'poppler >= 0.20' 'poppler < 23.0' ) if test "$have_poppler" = "yes"; then @@ -32,6 +32,8 @@ if test "$have_poppler" = "yes"; then AC_DEFINE_UNQUOTED(POPPLER_VERSION_0_86, $((1-$?)), Poppler version >= 0.86) $PKG_CONFIG --atleast-version=21.06.0 poppler AC_DEFINE_UNQUOTED(POPPLER_VERSION_21_06_0, $((1-$?)), Poppler version >= 21.06.0) + $PKG_CONFIG --atleast-version=22.06.0 poppler + AC_DEFINE_UNQUOTED(POPPLER_VERSION_22_06_0, $((1-$?)), Poppler version >= 22.06.0) fi AC_OUTPUT( \ diff --git a/gb.pdf/src/CPdfDocument.cpp b/gb.pdf/src/CPdfDocument.cpp index 89d7f803..8c5a457d 100644 --- a/gb.pdf/src/CPdfDocument.cpp +++ b/gb.pdf/src/CPdfDocument.cpp @@ -477,12 +477,12 @@ int32_t open_document (void *_object, char *sfile, int32_t lfile) if ( GB.LoadFile(sfile,lfile,&buf,&len) ) return -1; #if POPPLER_VERSION_0_58 - stream=new MemStream(buf,0,(uint)len,std::move(obj)); + stream = new MemStream(buf,0,(uint)len,std::move(obj)); #else obj.initNull(); - stream=new MemStream(buf,0,(uint)len,&obj); + stream = new MemStream(buf,0,(uint)len,&obj); #endif - test=new PDFDoc (stream,0,0); + test = new PDFDoc(stream); if (!test->isOk()) { @@ -1036,14 +1036,41 @@ BEGIN_PROPERTY (PDFPAGELINKS_count) if (!THIS->links) aux_fill_links(_object); if (!THIS->links) { GB.ReturnInteger(0); return; } + +#if POPPLER_VERSION_22_06_0 + int numlinks = 0; + for (AnnotLink *link : THIS->links->getLinks()) { + numlinks++; + } + GB.ReturnInteger(numlinks); +#else GB.ReturnInteger(THIS->links->getNumLinks()); +#endif END_PROPERTY BEGIN_METHOD (PDFPAGELINKS_get,GB_INTEGER ind;) - bool pok=true; +#if POPPLER_VERSION_22_06_0 + + if (!THIS->links) aux_fill_links(_object); + if (THIS->links && VARG(ind)>0) + { + int i = 0; + for (AnnotLink *link : THIS->links->getLinks()) { + if (VARG(ind)==i) { + THIS->action=link->getAction(); + RETURN_SELF(); + } + } + } + GB.Error("Out of bounds"); + return; + +#else + + bool pok = true; if (!THIS->links) aux_fill_links(_object); if (!THIS->links) pok=false; @@ -1063,6 +1090,8 @@ BEGIN_METHOD (PDFPAGELINKS_get,GB_INTEGER ind;) RETURN_SELF(); +#endif + END_METHOD BEGIN_PROPERTY (PDFPAGELINKDATA_parameters) @@ -1131,9 +1160,26 @@ static void aux_get_link_dimensions(void *_object, CPDFRECT *rect) pw=THIS->page->getMediaWidth(); ph=THIS->page->getMediaHeight(); +#if POPPLER_VERSION_22_06_0 + + uint i = 0; + l = t = w = h = 0; + for (AnnotLink *link : THIS->links->getLinks()) { + if (i == THIS->lcurrent) { + link->getRect(&l, &t, &w, &h); + break; + } + i++; + } + +#else + THIS->links->getLink(THIS->lcurrent)->getRect(&l, &t, &w, &h); - w=w-l; - h=h-t; + +#endif + + w -= l; + h -= t; switch (get_rotation(THIS)) {