From 2c57eeb6e3eeaea400ca953635f006718fd0ed7d Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 28 Dec 2007 17:07:40 +0000 Subject: [PATCH] reach only to 0..n-1 queries for fonts, and only in the proper order svn path=/trunk/KDE/kdegraphics/okular/; revision=753867 --- generators/poppler/generator_pdf.cpp | 10 ++++++++-- generators/poppler/generator_pdf.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/generators/poppler/generator_pdf.cpp b/generators/poppler/generator_pdf.cpp index f6cf699a8..aa8909427 100644 --- a/generators/poppler/generator_pdf.cpp +++ b/generators/poppler/generator_pdf.cpp @@ -307,7 +307,7 @@ OKULAR_EXPORT_PLUGIN(PDFGenerator, createAboutData()) PDFGenerator::PDFGenerator( QObject *parent, const QVariantList &args ) : Generator( parent, args ), pdfdoc( 0 ), ready( true ), pixmapRequest( 0 ), docInfoDirty( true ), docSynopsisDirty( true ), - docEmbeddedFilesDirty( true ), pdfOptionsPage( 0 ) + docEmbeddedFilesDirty( true ), nextFontPage( 0 ), pdfOptionsPage( 0 ) { setFeature( TextExtraction ); setFeature( FontInfo ); @@ -472,6 +472,7 @@ bool PDFGenerator::doCloseDocument() docEmbeddedFilesDirty = true; qDeleteAll(docEmbeddedFiles); docEmbeddedFiles.clear(); + nextFontPage = 0; return true; } @@ -675,10 +676,13 @@ static Okular::FontInfo::EmbedType embedTypeForPopplerFontInfo( const Poppler::F return ret; } -Okular::FontInfo::List PDFGenerator::fontsForPage( int /*page*/ ) +Okular::FontInfo::List PDFGenerator::fontsForPage( int page ) { Okular::FontInfo::List list; + if ( page != nextFontPage ) + return list; + QList fonts; userMutex()->lock(); pdfdoc->scanForFonts( 1, &fonts ); @@ -695,6 +699,8 @@ Okular::FontInfo::List PDFGenerator::fontsForPage( int /*page*/ ) list.append( of ); } + ++nextFontPage; + return list; } diff --git a/generators/poppler/generator_pdf.h b/generators/poppler/generator_pdf.h index 9ce65c85c..4171c1171 100644 --- a/generators/poppler/generator_pdf.h +++ b/generators/poppler/generator_pdf.h @@ -132,6 +132,7 @@ class PDFGenerator : public Okular::Generator, public Okular::ConfigInterface, p Okular::DocumentSynopsis docSyn; mutable bool docEmbeddedFilesDirty; mutable QList docEmbeddedFiles; + int nextFontPage; QVector rectsGenerated; -- GitLab