Add support for Poppler >= 0.60

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/1/head
Slávek Banko 7 years ago
parent e199b0f778
commit 9dd187337a

@ -1,6 +1,7 @@
#cmakedefine VERSION "@VERSION@" #cmakedefine VERSION "@VERSION@"
// poppler-tqt // poppler-tqt
#cmakedefine HAVE_POPPLER_060
#cmakedefine HAVE_POPPLER_030 #cmakedefine HAVE_POPPLER_030
#cmakedefine HAVE_POPPLER_020 #cmakedefine HAVE_POPPLER_020
#cmakedefine HAVE_POPPLER_016 #cmakedefine HAVE_POPPLER_016

@ -24,3 +24,13 @@ check_cxx_source_compiles("
HAVE_POPPLER_030 ) HAVE_POPPLER_030 )
tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES ) tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
if( NOT DEFINED HAVE_POPPLER_060 )
message( STATUS "Performing Test HAVE_POPPLER_060" )
if( POPPLER_VERSION VERSION_GREATER_EQUAL "0.60" )
set( HAVE_POPPLER_060 1 CACHE INTERNAL "" FORCE )
message( STATUS "Performing Test HAVE_POPPLER_060 - Success" )
else( )
set( HAVE_POPPLER_060 "" CACHE INTERNAL "" FORCE )
message( STATUS "Performing Test HAVE_POPPLER_060 - Failed" )
endif( )
endif( )

@ -153,7 +153,11 @@ TQString Document::getInfo( const TQString & type ) const
if ( data->locked ) if ( data->locked )
return NULL; return NULL;
# if defined(HAVE_POPPLER_060)
info = data->doc.getDocInfo();
# else
data->doc.getDocInfo( &info ); data->doc.getDocInfo( &info );
# endif
if ( !info.isDict() ) if ( !info.isDict() )
return NULL; return NULL;
@ -165,7 +169,13 @@ TQString Document::getInfo( const TQString & type ) const
int i; int i;
Dict *infoDict = info.getDict(); Dict *infoDict = info.getDict();
if ( infoDict->lookup( (char*)type.latin1(), &obj )->isString() ) if (
# if defined(HAVE_POPPLER_060)
infoDict->lookup( (char*)type.latin1() ).isString()
# else
infoDict->lookup( (char*)type.latin1(), &obj )->isString()
# endif
)
{ {
s1 = obj.getString(); s1 = obj.getString();
if ( ( s1->getChar(0) & 0xff ) == 0xfe && ( s1->getChar(1) & 0xff ) == 0xff ) if ( ( s1->getChar(0) & 0xff ) == 0xfe && ( s1->getChar(1) & 0xff ) == 0xff )
@ -192,12 +202,16 @@ TQString Document::getInfo( const TQString & type ) const
} }
result += unicodeToTQString( &u, 1 ); result += unicodeToTQString( &u, 1 );
} }
# if !defined(HAVE_POPPLER_060)
obj.free(); obj.free();
info.free(); info.free();
# endif
return result; return result;
} }
# if !defined(HAVE_POPPLER_060)
obj.free(); obj.free();
info.free(); info.free();
# endif
return NULL; return NULL;
} }
@ -209,9 +223,15 @@ TQDateTime Document::getDate( const TQString & type ) const
return TQDateTime(); return TQDateTime();
Object info; Object info;
# if defined(HAVE_POPPLER_060)
info = data->doc.getDocInfo();
# else
data->doc.getDocInfo( &info ); data->doc.getDocInfo( &info );
# endif
if ( !info.isDict() ) { if ( !info.isDict() ) {
# if !defined(HAVE_POPPLER_060)
info.free(); info.free();
# endif
return TQDateTime(); return TQDateTime();
} }
@ -221,7 +241,13 @@ TQDateTime Document::getDate( const TQString & type ) const
Dict *infoDict = info.getDict(); Dict *infoDict = info.getDict();
TQString result; TQString result;
if ( infoDict->lookup( (char*)type.latin1(), &obj )->isString() ) if (
# if defined(HAVE_POPPLER_060)
infoDict->lookup( (char*)type.latin1() ).isString()
# else
infoDict->lookup( (char*)type.latin1(), &obj )->isString()
# endif
)
{ {
TQString s = UnicodeParsedString(obj.getString()); TQString s = UnicodeParsedString(obj.getString());
// TODO do something with the timezone information // TODO do something with the timezone information
@ -230,14 +256,18 @@ TQDateTime Document::getDate( const TQString & type ) const
TQDate d( year, mon, day ); //CHECK: it was mon-1, Jan->0 (??) TQDate d( year, mon, day ); //CHECK: it was mon-1, Jan->0 (??)
TQTime t( hour, min, sec ); TQTime t( hour, min, sec );
if ( d.isValid() && t.isValid() ) { if ( d.isValid() && t.isValid() ) {
# if !defined(HAVE_POPPLER_060)
obj.free(); obj.free();
info.free(); info.free();
# endif
return TQDateTime( d, t ); return TQDateTime( d, t );
} }
} }
} }
# if !defined(HAVE_POPPLER_060)
obj.free(); obj.free();
info.free(); info.free();
# endif
return TQDateTime(); return TQDateTime();
} }
@ -317,7 +347,7 @@ bool Document::print(const TQString &fileName, TQValueList<int> pageList, double
bool Document::print(const TQString &file, TQValueList<int> pageList, double hDPI, double vDPI, int rotate, int paperWidth, int paperHeight) bool Document::print(const TQString &file, TQValueList<int> pageList, double hDPI, double vDPI, int rotate, int paperWidth, int paperHeight)
{ {
#if defined(HAVE_POPPLER_030) #if defined(HAVE_POPPLER_060) || defined(HAVE_POPPLER_030)
std::vector<int> pages; std::vector<int> pages;
TQValueList<int>::iterator it; TQValueList<int>::iterator it;
for (it = pageList.begin(); it != pageList.end(); ++it ) { for (it = pageList.begin(); it != pageList.end(); ++it ) {

@ -129,7 +129,7 @@ TQString Page::getText(const Rectangle &r) const
TQString result; TQString result;
::Page *p; ::Page *p;
#if defined(HAVE_POPPLER_030) || defined(HAVE_POPPLER_020) #if defined(HAVE_POPPLER_060) || defined(HAVE_POPPLER_030) || defined(HAVE_POPPLER_020)
output_dev = new TextOutputDev(0, gFalse, 0, gFalse, gFalse); output_dev = new TextOutputDev(0, gFalse, 0, gFalse, gFalse);
#else #else
output_dev = new TextOutputDev(0, gFalse, gFalse, gFalse); output_dev = new TextOutputDev(0, gFalse, gFalse, gFalse);
@ -164,7 +164,7 @@ TQValueList<TextBox*> Page::textList() const
TQValueList<TextBox*> output_list; TQValueList<TextBox*> output_list;
#if defined(HAVE_POPPLER_030) || defined(HAVE_POPPLER_020) #if defined(HAVE_POPPLER_060) || defined(HAVE_POPPLER_030) || defined(HAVE_POPPLER_020)
output_dev = new TextOutputDev(0, gFalse, 0, gFalse, gFalse); output_dev = new TextOutputDev(0, gFalse, 0, gFalse, gFalse);
#else #else
output_dev = new TextOutputDev(0, gFalse, gFalse, gFalse); output_dev = new TextOutputDev(0, gFalse, gFalse, gFalse);
@ -205,9 +205,16 @@ PageTransition *Page::getTransition() const
{ {
Object o; Object o;
PageTransitionParams params; PageTransitionParams params;
params.dictObj = data->doc->data->doc.getCatalog()->getPage(data->index + 1)->getTrans(&o); # if defined(HAVE_POPPLER_060)
o = data->doc->data->doc.getCatalog()->getPage(data->index + 1)->getTrans();
# else
data->doc->data->doc.getCatalog()->getPage(data->index + 1)->getTrans(&o);
# endif
params.dictObj = &o;
data->transition = new PageTransition(params); data->transition = new PageTransition(params);
# if !defined(HAVE_POPPLER_060)
o.free(); o.free();
# endif
} }
return data->transition; return data->transition;
} }

Loading…
Cancel
Save