diff --git a/core/fontinfo.cpp b/core/fontinfo.cpp index 59ea79f..a102632 100644 --- a/core/fontinfo.cpp +++ b/core/fontinfo.cpp @@ -27,6 +27,7 @@ class Okular::FontInfoPrivate bool operator==( const FontInfoPrivate &rhs ) const { return name == rhs.name && + substituteName == rhs.substituteName && type == rhs.type && embedType == rhs.embedType && file == rhs.file && @@ -35,6 +36,7 @@ class Okular::FontInfoPrivate } QString name; + QString substituteName; FontInfo::FontType type; FontInfo::EmbedType embedType; bool canBeExtracted; @@ -67,6 +69,16 @@ void FontInfo::setName( const QString& name ) d->name = name; } +QString FontInfo::substituteName() const +{ + return d->substituteName; +} + +void FontInfo::setSubstituteName( const QString& substituteName ) +{ + d->substituteName = substituteName; +} + FontInfo::FontType FontInfo::type() const { return d->type; diff --git a/core/fontinfo.h b/core/fontinfo.h index d11b3b0..a7f5e78 100644 --- a/core/fontinfo.h +++ b/core/fontinfo.h @@ -84,6 +84,16 @@ class OKULAR_EXPORT FontInfo */ void setName( const QString& name ); + /** + * Returns the substitute name for the font. + */ + QString substituteName() const; + + /** + * Sets a new substitute name for the font. + */ + void setSubstituteName (const QString& substituteName ); + /** * Returns the type of the font. */ diff --git a/generators/poppler/generator_pdf.cpp b/generators/poppler/generator_pdf.cpp index 7d27f6e..71dec86 100644 --- a/generators/poppler/generator_pdf.cpp +++ b/generators/poppler/generator_pdf.cpp @@ -827,6 +827,7 @@ Okular::FontInfo::List PDFGenerator::fontsForPage( int page ) { Okular::FontInfo of; of.setName( font.name() ); + of.setSubstituteName( font.substituteName() ); of.setType( convertPopplerFontInfoTypeToOkularFontInfoType( font.type() ) ); of.setEmbedType( embedTypeForPopplerFontInfo( font) ); of.setFile( font.file() ); diff --git a/ui/propertiesdialog.cpp b/ui/propertiesdialog.cpp index dd7bb5c..ad61859 100644 --- a/ui/propertiesdialog.cpp +++ b/ui/propertiesdialog.cpp @@ -368,7 +368,12 @@ QVariant FontsListModel::data( const QModelIndex &index, int role ) const return descriptionForFontType( m_fonts.at( index.row() ).type() ); break; case 2: - return pathOrDescription( m_fonts.at( index.row() ) ); + QString pathOrDesc = pathOrDescription( m_fonts.at( index.row() ) ); + QString substituteName = m_fonts.at( index.row() ).substituteName(); + if (m_fonts.at( index.row() ).embedType() == Okular::FontInfo::NotEmbedded && !substituteName.isEmpty()) { + return QString("%1 (substituting with %2)").arg(pathOrDesc).arg(substituteName); + } + return pathOrDesc; break; } break;