Fonts are scanned again by poppler5

Fonts are filtered as well to only appear once.

REVIEW: 128441
This commit is contained in:
Olivier CHURLAUD 2016-07-13 23:46:43 +02:00
parent ec0b68a756
commit dd8fa351ce
3 changed files with 11 additions and 7 deletions

View file

@ -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& )

View file

@ -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;

View file

@ -800,8 +800,11 @@ Okular::FontInfo::List PDFGenerator::fontsForPage( int page )
QList<Poppler::FontInfo> 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)