From b98637741d34123796d2027aaec219e12e8309a9 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Fri, 24 Mar 2006 21:45:59 +0000 Subject: [PATCH] libokularGenerator_poppler links svn path=/branches/work/kde4/playground/graphics/okular/; revision=522254 --- generators/poppler/Makefile.am | 2 +- generators/poppler/generator_pdf.cpp | 56 ++++++++++++++-------------- generators/poppler/generator_pdf.h | 9 +++-- generators/poppler/gp_outputdev.cpp | 6 +-- generators/poppler/gp_outputdev.h | 6 +-- 5 files changed, 39 insertions(+), 40 deletions(-) diff --git a/generators/poppler/Makefile.am b/generators/poppler/Makefile.am index 87333f402..57f210bb0 100644 --- a/generators/poppler/Makefile.am +++ b/generators/poppler/Makefile.am @@ -1,7 +1,7 @@ kde_module_LTLIBRARIES = \ libokularGenerator_poppler.la -INCLUDES = -I$(srcdir)/../.. $(POPPLER_CFLAGS) $(all_includes) +INCLUDES = -I$(srcdir)/../.. -I../.. $(POPPLER_CFLAGS) $(all_includes) libokularGenerator_poppler_la_LIBADD = ../../core/liboKularcore.la ../../conf/liboKularconf.la \ $(POPPLER_LIBS) $(LIB_KDEPRINT) $(LIB_KDEUI) -lm diff --git a/generators/poppler/generator_pdf.cpp b/generators/poppler/generator_pdf.cpp index 0756e23e1..5d71218f0 100644 --- a/generators/poppler/generator_pdf.cpp +++ b/generators/poppler/generator_pdf.cpp @@ -13,12 +13,11 @@ #include #include #include -#include #include #include -#include +#include #include -#include +#include #include #include #include @@ -108,13 +107,13 @@ PDFGenerator::~PDFGenerator() delete globalParams; } -void PDFGenerator::setOrientation(QValueVector & pagesVector, int orientation) +void PDFGenerator::setOrientation(QVector & pagesVector, int orientation) { loadPages(pagesVector,orientation,true); } //BEGIN Generator inherited functions -bool PDFGenerator::loadDocument( const QString & filePath, QValueVector & pagesVector ) +bool PDFGenerator::loadDocument( const QString & filePath, QVector & pagesVector ) { #ifndef NDEBUG if ( pdfdoc ) @@ -132,7 +131,7 @@ bool PDFGenerator::loadDocument( const QString & filePath, QValueVectorisOk() && pdfdoc->getErrorCode() == errEncrypted ) { - QCString password; + QByteArray password; // 1.A. try to retrieve the first password from the kde wallet system if ( !triedWallet ) @@ -165,7 +164,7 @@ bool PDFGenerator::loadDocument( const QString & filePath, QValueVector &pagesVector, int rotation, bool clear) +void PDFGenerator::loadPages(QVector &pagesVector, int rotation, bool clear) { // TODO XPDF 3.01 check // KPDFTextDev td; @@ -271,7 +270,7 @@ RegularAreaRect * PDFGenerator::findText (const QString & text, SearchDir dir, // create a xpf's Unicode (unsigned int) array for the given text const QChar * str = text.unicode(); int len = text.length(); - QMemArray u(len); + QVector u(len); for (int i = 0; i < len; ++i) u[i] = str[i].unicode(); @@ -295,13 +294,13 @@ RegularAreaRect * PDFGenerator::findText (const QString & text, SearchDir dir, while ( !found ) { if ( dir == FromTop ) - found = textPage->findText( const_cast(static_cast(u)), len, + found = textPage->findText( u.data(), len, gTrue, gTrue, gFalse, gFalse, sCase, gFalse, &sLeft, &sTop, &sRight, &sBottom ); else if ( dir == NextRes ) - found = textPage->findText( const_cast(static_cast(u)), len, + found = textPage->findText( u.data(), len, gFalse, gTrue, gTrue, gFalse, sCase, gFalse, &sLeft, &sTop, &sRight, &sBottom ); else if ( dir == PrevRes ) - found = textPage->findText( const_cast(static_cast(u)), len, + found = textPage->findText( u.data(), len, gTrue, gFalse, gFalse, gTrue, sCase, gFalse, &sLeft, &sTop, &sRight, &sBottom ); // if not found (even in case unsensitive search), terminate @@ -440,7 +439,7 @@ const DocumentFonts * PDFGenerator::generateDocumentFonts() bool PDFGenerator::isAllowed( int permissions ) { #if !KPDF_FORCE_DRM - if (kapp->authorize("skip_drm") && !KpdfSettings::obeyDRM()) return true; + if (KAuthorized::authorize("skip_drm") && !KpdfSettings::obeyDRM()) return true; #endif bool b = true; @@ -555,9 +554,8 @@ bool PDFGenerator::print( KPrinter& printer ) dummy.setFullPage(true); dummy.setPageSize((QPrinter::PageSize)(ps.isEmpty() ? KGlobal::locale()->pageSize() : pageNameToPageSize(ps))); - QPaintDeviceMetrics metrics(&dummy); - globalParams->setPSPaperWidth(metrics.width()); - globalParams->setPSPaperHeight(metrics.height()); + globalParams->setPSPaperWidth(dummy.width()); + globalParams->setPSPaperHeight(dummy.height()); } KTempFile tf( QString::null, ".ps" ); @@ -565,7 +563,7 @@ bool PDFGenerator::print( KPrinter& printer ) if (psOut->isOk()) { - QValueList pageList; + QList pageList; if (!printer.previewOnly()) { @@ -587,7 +585,7 @@ bool PDFGenerator::print( KPrinter& printer ) // needs to be here so that the file is flushed, do not merge with the one // in the else delete psOut; - printer.printFiles(tf.name(), true); + printer.printFiles(QStringList(tf.name()), true); return true; } else @@ -1275,9 +1273,9 @@ void PDFGenerator::addAnnotations( Page * pdfPage, KPDFPage * page ) QMap< int, Annotation * > annotationsMap; QMap< int, PopupWindow * > popupsMap; // lists of Windows and Revisions that needs resolution - QValueList< ResolveRevision > resolveRevList; - QValueList< ResolveWindow > resolvePopList; - QValueList< PostProcessText > ppTextList; + QLinkedList< ResolveRevision > resolveRevList; + QLinkedList< ResolveWindow > resolvePopList; + QLinkedList< PostProcessText > ppTextList; // build a normalized transform matrix for this page at 100% scale GfxState * gfxState = new GfxState( 72.0, 72.0, pdfPage->getMediaBox(), pdfPage->getRotate(), gTrue ); @@ -1573,7 +1571,7 @@ void PDFGenerator::addAnnotations( Page * pdfPage, KPDFPage * page ) for ( int m = 0; m < pathsNumber; m++ ) { // transform each path in a list of normalized points .. - QValueList localList; + QLinkedList localList; Object pointsArray; pathsArray.arrayGet( m, &pointsArray ); if ( pointsArray.isArray() ) @@ -1841,7 +1839,7 @@ void PDFGenerator::addAnnotations( Page * pdfPage, KPDFPage * page ) /** 2 - RESOLVE POPUPS (popup.* -> annotation.window) */ if ( !resolvePopList.isEmpty() && !popupsMap.isEmpty() ) { - QValueList< ResolveWindow >::iterator it = resolvePopList.begin(), + QLinkedList< ResolveWindow >::iterator it = resolvePopList.begin(), end = resolvePopList.end(); for ( ; it != end; ++it ) { @@ -1885,7 +1883,7 @@ void PDFGenerator::addAnnotations( Page * pdfPage, KPDFPage * page ) // append children to parents int excludeIDs[ resolveRevList.count() ]; // can't even reach this size int excludeIndex = 0; // index in excludeIDs array - QValueList< ResolveRevision >::iterator it = resolveRevList.begin(), end = resolveRevList.end(); + QLinkedList< ResolveRevision >::iterator it = resolveRevList.begin(), end = resolveRevList.end(); for ( ; it != end; ++it ) { const ResolveRevision & request = *it; @@ -1915,7 +1913,7 @@ void PDFGenerator::addAnnotations( Page * pdfPage, KPDFPage * page ) /** 4 - POSTPROCESS TextAnnotations (when window geom is embedded) */ if ( !ppTextList.isEmpty() ) { - QValueList< PostProcessText >::const_iterator it = ppTextList.begin(), end = ppTextList.end(); + QLinkedList< PostProcessText >::const_iterator it = ppTextList.begin(), end = ppTextList.end(); for ( ; it != end; ++it ) { const PostProcessText & request = *it; @@ -2107,7 +2105,7 @@ void PDFGenerator::customEvent( QCustomEvent * event ) PixmapRequest * request = static_cast< PixmapRequest * >( event->data() ); QImage * outImage = generatorThread->takeImage(); TextPage * outTextPage = generatorThread->takeTextPage(); - QValueList< ObjectRect * > outRects = generatorThread->takeObjectRects(); + QLinkedList< ObjectRect * > outRects = generatorThread->takeObjectRects(); request->page->setPixmap( request->id, new QPixmap( *outImage ) ); delete outImage; @@ -2139,7 +2137,7 @@ struct PPGThreadPrivate // internal temp stored items. don't delete this. QImage * m_image; TextPage * m_textPage; - QValueList< ObjectRect * > m_rects; + QLinkedList< ObjectRect * > m_rects; bool m_rectsTaken; }; @@ -2161,7 +2159,7 @@ PDFPixmapGeneratorThread::~PDFPixmapGeneratorThread() delete d->m_textPage; if ( !d->m_rectsTaken && d->m_rects.count() ) { - QValueList< ObjectRect * >::iterator it = d->m_rects.begin(), end = d->m_rects.end(); + QLinkedList< ObjectRect * >::iterator it = d->m_rects.begin(), end = d->m_rects.end(); for ( ; it != end; ++it ) delete *it; } @@ -2225,7 +2223,7 @@ TextPage * PDFPixmapGeneratorThread::takeTextPage() const return tp; } -QValueList< ObjectRect * > PDFPixmapGeneratorThread::takeObjectRects() const +QLinkedList< ObjectRect * > PDFPixmapGeneratorThread::takeObjectRects() const { d->m_rectsTaken = true; return d->m_rects; diff --git a/generators/poppler/generator_pdf.h b/generators/poppler/generator_pdf.h index aa10e04eb..e01a9302c 100644 --- a/generators/poppler/generator_pdf.h +++ b/generators/poppler/generator_pdf.h @@ -11,6 +11,7 @@ #ifndef _KPDF_GENERATOR_PDF_H_ #define _KPDF_GENERATOR_PDF_H_ +#include #include #include #include @@ -54,8 +55,8 @@ class PDFGenerator : public Generator virtual ~PDFGenerator(); // [INHERITED] load a document and fill up the pagesVector - bool loadDocument( const QString & fileName, QValueVector & pagesVector ); - void loadPages(QValueVector &pagesVector, int rotation=-1, bool clear=false); + bool loadDocument( const QString & fileName, QVector & pagesVector ); + void loadPages(QVector &pagesVector, int rotation=-1, bool clear=false); // [INHERITED] document informations const DocumentInfo * generateDocumentInfo(); const DocumentSynopsis * generateDocumentSynopsis(); @@ -83,7 +84,7 @@ class PDFGenerator : public Generator KPDFPage * page ); QString * getText( const RegularAreaRect * area, KPDFPage * page ); - void setOrientation(QValueVector & pagesVector, int orientation); + void setOrientation(QVector & pagesVector, int orientation); // [INHERITED] print page using an already configured kprinter bool print( KPrinter& printer ); @@ -163,7 +164,7 @@ class PDFPixmapGeneratorThread : public QThread // methods for getting contents from the GUI thread QImage * takeImage() const; TextPage * takeTextPage() const; - QValueList< ObjectRect * > takeObjectRects() const; + QLinkedList< ObjectRect * > takeObjectRects() const; private: // can't be called from the outside (but from startGeneration) diff --git a/generators/poppler/gp_outputdev.cpp b/generators/poppler/gp_outputdev.cpp index 0b5a2e704..1260c558b 100644 --- a/generators/poppler/gp_outputdev.cpp +++ b/generators/poppler/gp_outputdev.cpp @@ -80,11 +80,11 @@ QImage * KPDFOutputDev::takeImage() return img; } -QValueList< ObjectRect * > KPDFOutputDev::takeObjectRects() +QLinkedList< ObjectRect * > KPDFOutputDev::takeObjectRects() { if ( m_rects.isEmpty() ) return m_rects; - QValueList< ObjectRect * > rectsCopy( m_rects ); + QLinkedList< ObjectRect * > rectsCopy( m_rects ); m_rects.clear(); return rectsCopy; } @@ -217,7 +217,7 @@ void KPDFOutputDev::clear() // delete rects if ( m_rects.count() ) { - QValueList< ObjectRect * >::iterator it = m_rects.begin(), end = m_rects.end(); + QLinkedList< ObjectRect * >::iterator it = m_rects.begin(), end = m_rects.end(); for ( ; it != end; ++it ) delete *it; m_rects.clear(); diff --git a/generators/poppler/gp_outputdev.h b/generators/poppler/gp_outputdev.h index c154dd223..d5f60a645 100644 --- a/generators/poppler/gp_outputdev.h +++ b/generators/poppler/gp_outputdev.h @@ -22,7 +22,7 @@ #define USE_FIXEDPOINT 0 #define SPLASH_CMYK 0 -#include +#include #include "PDFDoc.h" // for 'Object' #include "SplashOutputDev.h" @@ -57,7 +57,7 @@ class KPDFOutputDev : public SplashOutputDev // takes pointers out of the class (so deletion it's up to others) QPixmap * takePixmap(); QImage * takeImage(); - QValueList< ObjectRect * > takeObjectRects(); + QLinkedList< ObjectRect * > takeObjectRects(); /** inherited from OutputDev */ // End a page. @@ -87,7 +87,7 @@ class KPDFOutputDev : public SplashOutputDev PDFDoc * m_doc; QPixmap * m_pixmap; QImage * m_image; - QValueList< ObjectRect * > m_rects; // objectRects (links/images) + QLinkedList< ObjectRect * > m_rects; // objectRects (links/images) }; #endif