diff --git a/core/document.cpp b/core/document.cpp index a59d2ea33..2f99a8cd4 100644 --- a/core/document.cpp +++ b/core/document.cpp @@ -1521,10 +1521,12 @@ void DocumentPrivate::fontReadingProgress( int page ) void DocumentPrivate::fontReadingGotFont( const Okular::FontInfo& font ) { - // TODO try to avoid duplicate fonts - m_fontsCache.append( font ); + // Try to avoid duplicate fonts + if (m_fontsCache.indexOf(font) == -1) { + m_fontsCache.append( font ); - emit m_parent->gotFont( font ); + emit m_parent->gotFont( font ); + } } void DocumentPrivate::slotGeneratorConfigChanged( const QString& ) diff --git a/core/fontinfo.cpp b/core/fontinfo.cpp index 59ea79f79..f7ca0458a 100644 --- a/core/fontinfo.cpp +++ b/core/fontinfo.cpp @@ -30,8 +30,7 @@ class Okular::FontInfoPrivate type == rhs.type && embedType == rhs.embedType && file == rhs.file && - canBeExtracted == rhs.canBeExtracted && - nativeId == rhs.nativeId; + canBeExtracted == rhs.canBeExtracted; } QString name; diff --git a/generators/poppler/generator_pdf.cpp b/generators/poppler/generator_pdf.cpp index 6ace7167d..8478a8cbc 100644 --- a/generators/poppler/generator_pdf.cpp +++ b/generators/poppler/generator_pdf.cpp @@ -800,8 +800,11 @@ Okular::FontInfo::List PDFGenerator::fontsForPage( int page ) QList fonts; userMutex()->lock(); -#pragma message("scanForFonts doesn't exist in Poppler5. BahhhH!") - //pdfdoc->scanForFonts( 1, &fonts ); + + Poppler::FontIterator* it = pdfdoc->newFontIterator(page); + if (it->hasNext()) { + fonts = it->next(); + } userMutex()->unlock(); foreach (const Poppler::FontInfo &font, fonts)