summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOBATA Akio <[email protected]>2019-05-21 13:33:17 +0900
committerSlávek Banko <[email protected]>2019-05-21 18:02:47 +0200
commitb9469c0263ea3bf1e72a3dd364bb42e3d6f47a7c (patch)
tree69fd0b9c66bd88f6b426063f113ca8fd6d97cc41
parent57535f3efb857b11838ed6e1b8c70b70802c81f0 (diff)
downloadtdegraphics-b9469c0263ea3bf1e72a3dd364bb42e3d6f47a7c.tar.gz
tdegraphics-b9469c0263ea3bf1e72a3dd364bb42e3d6f47a7c.zip
Add support fo Poppler >= 0.76
Follow Catalog::find_page argments change and GooList removal. Signed-off-by: OBATA Akio <[email protected]> (cherry picked from commit e7a848c7aa5735cba4712d73f819a3e2b9883730)
-rw-r--r--config.h.cmake1
-rw-r--r--tdefile-plugins/dependencies/poppler-tqt/ConfigureChecks.cmake2
-rw-r--r--tdefile-plugins/dependencies/poppler-tqt/poppler-document.cc33
-rw-r--r--tdefile-plugins/dependencies/poppler-tqt/poppler-link.cc2
-rw-r--r--tdefile-plugins/dependencies/poppler-tqt/poppler-private.cc13
-rw-r--r--tdefile-plugins/dependencies/poppler-tqt/poppler-private.h17
6 files changed, 50 insertions, 18 deletions
diff --git a/config.h.cmake b/config.h.cmake
index 1eb7ed65..71f8a47a 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -1,6 +1,7 @@
#cmakedefine VERSION "@VERSION@"
// poppler-tqt
+#cmakedefine HAVE_POPPLER_076
#cmakedefine HAVE_POPPLER_072
#cmakedefine HAVE_POPPLER_071
#cmakedefine HAVE_POPPLER_070
diff --git a/tdefile-plugins/dependencies/poppler-tqt/ConfigureChecks.cmake b/tdefile-plugins/dependencies/poppler-tqt/ConfigureChecks.cmake
index d3b1de4e..0d03947c 100644
--- a/tdefile-plugins/dependencies/poppler-tqt/ConfigureChecks.cmake
+++ b/tdefile-plugins/dependencies/poppler-tqt/ConfigureChecks.cmake
@@ -24,7 +24,7 @@ check_cxx_source_compiles("
HAVE_POPPLER_030 )
tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
-foreach( _poppler_ver 0.58 0.64 0.70 0.71 0.72 )
+foreach( _poppler_ver 0.58 0.64 0.70 0.71 0.72 0.76 )
string( REPLACE "." "" _poppler_str "${_poppler_ver}" )
if( NOT DEFINED HAVE_POPPLER_${_poppler_str} )
message( STATUS "Performing Test HAVE_POPPLER_${_poppler_str}" )
diff --git a/tdefile-plugins/dependencies/poppler-tqt/poppler-document.cc b/tdefile-plugins/dependencies/poppler-tqt/poppler-document.cc
index 74e22913..13eb5cc6 100644
--- a/tdefile-plugins/dependencies/poppler-tqt/poppler-document.cc
+++ b/tdefile-plugins/dependencies/poppler-tqt/poppler-document.cc
@@ -127,23 +127,34 @@ TQValueList<FontInfo> Document::fonts() const
bool Document::scanForFonts( int numPages, TQValueList<FontInfo> *fontList ) const
{
- GooList *items = data->m_fontInfoScanner->scan( numPages );
+ FONTS_LIST_TYPE *items = data->m_fontInfoScanner->scan( numPages );
if ( NULL == items )
return false;
- for ( int i = 0; i < items->getLength(); ++i ) {
+ for ( int i = 0; i < FONTS_LIST_LENGTH(items); ++i ) {
TQString fontName;
- if (((::FontInfo*)items->get(i))->getName())
- fontName = ((::FontInfo*)items->get(i))->getName()->GOO_GET_CSTR();
+ ::FontInfo *fontInfo =
+#if defined(HAVE_POPPLER_076)
+ (*items)[i];
+#else
+ (::FontInfo*)items->get(i);
+#endif
+ if (fontInfo->getName())
+ fontName = fontInfo->getName()->GOO_GET_CSTR();
FontInfo font(fontName,
- ((::FontInfo*)items->get(i))->getEmbedded(),
- ((::FontInfo*)items->get(i))->getSubset(),
- (Poppler::FontInfo::Type)((::FontInfo*)items->get(i))->getType());
+ fontInfo->getEmbedded(),
+ fontInfo->getSubset(),
+ (Poppler::FontInfo::Type)(fontInfo->getType()));
fontList->append(font);
}
-# if defined(HAVE_POPPLER_070)
+# if defined(HAVE_POPPLER_076)
+ for (auto entry : *items) {
+ delete entry;
+ }
+ delete items;
+# elif defined(HAVE_POPPLER_070)
deleteGooList<::FontInfo>(items);
# else
deleteGooList(items, ::FontInfo);
@@ -324,12 +335,12 @@ TQDomDocument *Document::toc() const
if ( !outline )
return NULL;
- CONST_064 GooList * items = outline->getItems();
- if ( !items || items->getLength() < 1 )
+ OUTLINE_ITEMS_TYPE * items = outline->getItems();
+ if ( !items || OUTLINE_ITEMS_LENGTH(items) < 1 )
return NULL;
TQDomDocument *toc = new TQDomDocument();
- if ( items->getLength() > 0 )
+ if ( OUTLINE_ITEMS_LENGTH(items) > 0 )
data->addTocChildren( toc, toc, items );
return toc;
diff --git a/tdefile-plugins/dependencies/poppler-tqt/poppler-link.cc b/tdefile-plugins/dependencies/poppler-tqt/poppler-link.cc
index c8fa8984..52d7e4ab 100644
--- a/tdefile-plugins/dependencies/poppler-tqt/poppler-link.cc
+++ b/tdefile-plugins/dependencies/poppler-tqt/poppler-link.cc
@@ -53,7 +53,7 @@ namespace Poppler {
else
{
Ref ref = ld->getPageRef();
- m_pageNum = data.doc->doc.findPage( ref.num, ref.gen );
+ m_pageNum = data.doc->doc.findPage(FIND_PAGE_ARGS(ref));
}
double left = ld->getLeft();
double bottom = ld->getBottom();
diff --git a/tdefile-plugins/dependencies/poppler-tqt/poppler-private.cc b/tdefile-plugins/dependencies/poppler-tqt/poppler-private.cc
index e69d46c4..059bf1c0 100644
--- a/tdefile-plugins/dependencies/poppler-tqt/poppler-private.cc
+++ b/tdefile-plugins/dependencies/poppler-tqt/poppler-private.cc
@@ -86,13 +86,18 @@ GooString *TQStringToGooString(const TQString &s)
}
-void DocumentData::addTocChildren( TQDomDocument * docSyn, TQDomNode * parent, CONST_064 GooList * items )
+void DocumentData::addTocChildren( TQDomDocument * docSyn, TQDomNode * parent, OUTLINE_ITEMS_TYPE * items )
{
- int numItems = items->getLength();
+ int numItems = OUTLINE_ITEMS_LENGTH(items);
for ( int i = 0; i < numItems; ++i )
{
// iterate over every object in 'items'
- OutlineItem * outlineItem = (OutlineItem *)items->get( i );
+ OutlineItem * outlineItem =
+#ifdef HAVE_POPPLER_076
+ (*items)[i];
+#else
+ (OutlineItem *)items->get( i );
+#endif
// 1. create element using outlineItem's title as tagName
TQString name;
@@ -138,7 +143,7 @@ void DocumentData::addTocChildren( TQDomDocument * docSyn, TQDomNode * parent, C
// 3. recursively descend over children
outlineItem->open();
- CONST_064 GooList * children = outlineItem->getKids();
+ OUTLINE_ITEMS_TYPE * children = outlineItem->getKids();
if ( children )
addTocChildren( docSyn, &item, children );
}
diff --git a/tdefile-plugins/dependencies/poppler-tqt/poppler-private.h b/tdefile-plugins/dependencies/poppler-tqt/poppler-private.h
index 74a22596..33b8cfc3 100644
--- a/tdefile-plugins/dependencies/poppler-tqt/poppler-private.h
+++ b/tdefile-plugins/dependencies/poppler-tqt/poppler-private.h
@@ -49,6 +49,21 @@ class SplashOutputDev;
#else
#define GOO_GET_CSTR getCString
#endif
+#if defined(HAVE_POPPLER_076)
+#include <vector>
+class OutlineItem;
+#define OUTLINE_ITEMS_TYPE const std::vector<OutlineItem*>
+#define OUTLINE_ITEMS_LENGTH(goo) goo->size()
+#define FONTS_LIST_TYPE std::vector<::FontInfo*>
+#define FONTS_LIST_LENGTH(goo) goo->size()
+#define FIND_PAGE_ARGS(ref) ref
+#else
+#define OUTLINE_ITEMS_TYPE CONST_064 GooList
+#define OUTLINE_ITEMS_LENGTH(goo) goo->getLength()
+#define FONTS_LIST_TYPE GooList
+#define FONTS_LIST_LENGTH(goo) goo->getLength()
+#define FIND_PAGE_ARGS(ref) ref.num, ref.gen
+#endif
namespace Poppler {
@@ -99,7 +114,7 @@ class DocumentData {
return m_outputDev;
}
- void addTocChildren( TQDomDocument * docSyn, TQDomNode * parent, CONST_064 GooList * items );
+ void addTocChildren( TQDomDocument * docSyn, TQDomNode * parent, OUTLINE_ITEMS_TYPE * items );
class PDFDoc doc;
bool locked;