diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2012-01-13 13:19:19 +0200 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2012-01-13 11:51:19 +0000 |
commit | 6bfc9eda7a9171c0fda40c3fee38bb4eec6c9cde (patch) | |
tree | 8910d94b7a75bd5eb4621c524a12ddc7724646ff /vcl | |
parent | 617c8075aca140a09a57a3d9da4fdc80a64998c5 (diff) |
Drop XLFD support from fontmanager
XLFD support was removed in commit 269f91c (#i110171) except for parsing
fonts.dir and fonts.alias. I don't think this makes much sense in
fontconfig era, and dropping it simplifies the font manager a bit (I
don't even think we use server fonts at all).
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/generic/fontmanager/fontconfig.cxx | 3 | ||||
-rw-r--r-- | vcl/generic/fontmanager/fontmanager.cxx | 503 | ||||
-rw-r--r-- | vcl/inc/vcl/fontmanager.hxx | 40 |
3 files changed, 5 insertions, 541 deletions
diff --git a/vcl/generic/fontmanager/fontconfig.cxx b/vcl/generic/fontmanager/fontconfig.cxx index 90d59f1ebee3..eb0e9b669b83 100644 --- a/vcl/generic/fontmanager/fontconfig.cxx +++ b/vcl/generic/fontmanager/fontconfig.cxx @@ -547,10 +547,9 @@ int PrintFontManager::countFontconfigFonts( boost::unordered_map<rtl::OString, i #endif // not known, analyze font file to get attributes // not described by fontconfig (e.g. alias names, PSName) - std::list< OString > aDummy; if (eFormatRes != FcResultMatch) format = NULL; - analyzeFontFile( nDirID, aBase, aDummy, aFonts, (const char*)format ); + analyzeFontFile( nDirID, aBase, aFonts, (const char*)format ); #if OSL_DEBUG_LEVEL > 1 if( aFonts.empty() ) fprintf( stderr, "Warning: file \"%s\" is unusable to psprint\n", aOrgPath.getStr() ); diff --git a/vcl/generic/fontmanager/fontmanager.cxx b/vcl/generic/fontmanager/fontmanager.cxx index 450a9cec2479..5e20b9100ccb 100644 --- a/vcl/generic/fontmanager/fontmanager.cxx +++ b/vcl/generic/fontmanager/fontmanager.cxx @@ -133,18 +133,6 @@ inline sal_uInt32 getUInt32BE( const sal_uInt8*& pBuffer ) return nRet; } -static FontItalic parseItalic( const ByteString& rItalic ) -{ - FontItalic eItalic = ITALIC_DONTKNOW; - if( rItalic.EqualsIgnoreCaseAscii( "i" ) ) - eItalic = ITALIC_NORMAL; - else if( rItalic.EqualsIgnoreCaseAscii( "o" ) ) - eItalic = ITALIC_OBLIQUE; - else - eItalic = ITALIC_NONE; - return eItalic; -} - // ------------------------------------------------------------------------- static FontWeight parseWeight( const ByteString& rWeight ) @@ -184,169 +172,6 @@ static FontWeight parseWeight( const ByteString& rWeight ) return eWeight; } -// ------------------------------------------------------------------------- - -static FontWidth parseWidth( const ByteString& rWidth ) -{ - FontWidth eWidth = WIDTH_DONTKNOW; - if( rWidth.Equals( "bold" ) || - rWidth.Equals( "semiexpanded" ) ) - eWidth = WIDTH_SEMI_EXPANDED; - else if( rWidth.Equals( "condensed" ) || - rWidth.Equals( "narrow" ) ) - eWidth = WIDTH_CONDENSED; - else if( rWidth.Equals( "double wide" ) || - rWidth.Equals( "extraexpanded" ) || - rWidth.Equals( "ultraexpanded" ) ) - eWidth = WIDTH_ULTRA_EXPANDED; - else if( rWidth.Equals( "expanded" ) || - rWidth.Equals( "wide" ) ) - eWidth = WIDTH_EXPANDED; - else if( rWidth.Equals( "extracondensed" ) ) - eWidth = WIDTH_EXTRA_CONDENSED; - else if( rWidth.Equals( "semicondensed" ) ) - eWidth = WIDTH_SEMI_CONDENSED; - else if( rWidth.Equals( "ultracondensed" ) ) - eWidth = WIDTH_ULTRA_CONDENSED; - else - eWidth = WIDTH_NORMAL; - - return eWidth; -} - -// ------------------------------------------------------------------------- -bool PrintFontManager::XLFDEntry::operator<(const PrintFontManager::XLFDEntry& rRight) const -{ - sal_Int32 nCmp = 0; - if( (nMask & MaskFamily) && (rRight.nMask & MaskFamily) ) - { - nCmp = rtl_str_compareIgnoreAsciiCase_WithLength( aFamily.pData->buffer, - aFamily.pData->length, - rRight.aFamily.pData->buffer, - rRight.aFamily.pData->length ); - if( nCmp != 0 ) - return nCmp < 0; - } - - if( (nMask & MaskFoundry) && (rRight.nMask & MaskFoundry) ) - { - nCmp = rtl_str_compareIgnoreAsciiCase_WithLength( aFoundry.pData->buffer, - aFoundry.pData->length, - rRight.aFoundry.pData->buffer, - rRight.aFoundry.pData->length ); - if( nCmp != 0 ) - return nCmp < 0; - } - - if( (nMask & MaskItalic) && (rRight.nMask & MaskItalic) ) - { - if( eItalic != rRight.eItalic ) - return (int)eItalic < (int)rRight.eItalic; - } - - if( (nMask & MaskWeight) && (rRight.nMask & MaskWeight) ) - { - if( eWeight != rRight.eWeight ) - return (int)eWeight < (int)rRight.eWeight; - } - - if( (nMask & MaskWidth) && (rRight.nMask & MaskWidth) ) - { - if( eWidth != rRight.eWidth ) - return (int)eWidth < (int)rRight.eWidth; - } - - if( (nMask & MaskPitch) && (rRight.nMask & MaskPitch) ) - { - if( ePitch != rRight.ePitch ) - return (int)ePitch < (int)rRight.ePitch; - } - - if( (nMask & MaskAddStyle) && (rRight.nMask & MaskAddStyle) ) - { - nCmp = rtl_str_compareIgnoreAsciiCase_WithLength( aAddStyle.pData->buffer, - aAddStyle.pData->length, - rRight.aAddStyle.pData->buffer, - rRight.aAddStyle.pData->length ); - if( nCmp != 0 ) - return nCmp < 0; - } - - if( (nMask & MaskEncoding) && (rRight.nMask & MaskEncoding) ) - { - if( aEncoding != rRight.aEncoding ) - return aEncoding < rRight.aEncoding; - } - - return false; -} - -bool PrintFontManager::XLFDEntry::operator==(const PrintFontManager::XLFDEntry& rRight) const -{ - sal_Int32 nCmp = 0; - if( (nMask & MaskFamily) && (rRight.nMask & MaskFamily) ) - { - nCmp = rtl_str_compareIgnoreAsciiCase_WithLength( aFamily.pData->buffer, - aFamily.pData->length, - rRight.aFamily.pData->buffer, - rRight.aFamily.pData->length ); - if( nCmp != 0 ) - return false; - } - - if( (nMask & MaskFoundry) && (rRight.nMask & MaskFoundry) ) - { - nCmp = rtl_str_compareIgnoreAsciiCase_WithLength( aFoundry.pData->buffer, - aFoundry.pData->length, - rRight.aFoundry.pData->buffer, - rRight.aFoundry.pData->length ); - if( nCmp != 0 ) - return false; - } - - if( (nMask & MaskItalic) && (rRight.nMask & MaskItalic) ) - { - if( eItalic != rRight.eItalic ) - return false; - } - - if( (nMask & MaskWeight) && (rRight.nMask & MaskWeight) ) - { - if( eWeight != rRight.eWeight ) - return false; - } - - if( (nMask & MaskWidth) && (rRight.nMask & MaskWidth) ) - { - if( eWidth != rRight.eWidth ) - return false; - } - - if( (nMask & MaskPitch) && (rRight.nMask & MaskPitch) ) - { - if( ePitch != rRight.ePitch ) - return false; - } - - if( (nMask & MaskAddStyle) && (rRight.nMask & MaskAddStyle) ) - { - nCmp = rtl_str_compareIgnoreAsciiCase_WithLength( aAddStyle.pData->buffer, - aAddStyle.pData->length, - rRight.aAddStyle.pData->buffer, - rRight.aAddStyle.pData->length ); - if( nCmp != 0 ) - return false; - } - - if( (nMask & MaskEncoding) && (rRight.nMask & MaskEncoding) ) - { - if( aEncoding != rRight.aEncoding ) - return false; - } - - return true; -} - /* * PrintFont implementations */ @@ -1265,7 +1090,7 @@ std::vector<fontID> PrintFontManager::addFontFile( const ::rtl::OString& rFileNa if( aFontIds.empty() ) { ::std::list< PrintFont* > aNewFonts; - if( analyzeFontFile( nDirID, aName, ::std::list<OString>(), aNewFonts ) ) + if( analyzeFontFile( nDirID, aName, aNewFonts ) ) { for( ::std::list< PrintFont* >::iterator it = aNewFonts.begin(); it != aNewFonts.end(); ++it ) @@ -1286,7 +1111,7 @@ enum fontFormat UNKNOWN, TRUETYPE, CFF, TYPE1, AFM }; -bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, const ::std::list<OString>& rXLFDs, ::std::list< PrintFontManager::PrintFont* >& rNewFonts, const char *pFormat ) const +bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, ::std::list< PrintFontManager::PrintFont* >& rNewFonts, const char *pFormat ) const { rNewFonts.clear(); @@ -1368,8 +1193,6 @@ bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, co delete pFont; pFont = NULL; } - if( pFont && rXLFDs.size() ) - getFontAttributesFromXLFD( pFont, rXLFDs ); if( pFont ) rNewFonts.push_back( pFont ); break; @@ -1406,8 +1229,6 @@ bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, co pFont->m_nDirectory = nDirID; pFont->m_aFontFile = rFontFile; pFont->m_nCollectionEntry = i; - if( nLength == 1 ) - getFontAttributesFromXLFD( pFont, rXLFDs ); if( ! analyzeTrueTypeFile( pFont ) ) { delete pFont; @@ -1424,8 +1245,6 @@ bool PrintFontManager::analyzeFontFile( int nDirID, const OString& rFontFile, co pFont->m_aFontFile = rFontFile; pFont->m_nCollectionEntry = 0; - if( rXLFDs.size() ) - getFontAttributesFromXLFD( pFont, rXLFDs ); // need to read the font anyway to get aliases inside the font file if( ! analyzeTrueTypeFile( pFont ) ) { @@ -1546,194 +1365,6 @@ std::vector<fontID> PrintFontManager::findFontFileIDs( int nDirID, const OString // ------------------------------------------------------------------------- -bool PrintFontManager::parseXLFD( const OString& rXLFD, XLFDEntry& rEntry ) -{ - sal_Int32 nIndex = 0; - OString aFoundry = WhitespaceToSpace( rXLFD.getToken( 1, '-', nIndex ) ); - if( nIndex < 0 ) return false; - OString aFamilyXLFD = WhitespaceToSpace( rXLFD.getToken( 0, '-', nIndex ) ); - if( nIndex < 0 ) return false; - OString aWeight = rXLFD.getToken( 0, '-', nIndex ).toAsciiLowerCase(); - if( nIndex < 0 ) return false; - OString aSlant = rXLFD.getToken( 0, '-', nIndex ).toAsciiLowerCase(); - if( nIndex < 0 ) return false; - OString aWidth = rXLFD.getToken( 0, '-', nIndex ).toAsciiLowerCase(); - if( nIndex < 0 ) return false; - OString aAddStyle = rXLFD.getToken( 0, '-', nIndex ).toAsciiLowerCase(); - if( nIndex < 0 ) return false; - OString aPitch = rXLFD.getToken( 4, '-', nIndex ).toAsciiLowerCase(); - if( nIndex < 0 ) return false; - OString aRegEnc = WhitespaceToSpace( rXLFD.getToken( 1, '-', nIndex ).toAsciiLowerCase() ); - if( nIndex < 0 ) return false; - OString aEnc = WhitespaceToSpace( rXLFD.getToken( 0, '-', nIndex ).toAsciiLowerCase() ); - - // capitalize words - sal_Int32 nFamIndex = 0; - OStringBuffer aFamilyName; - while( nFamIndex >= 0 ) - { - OString aToken = aFamilyXLFD.getToken( 0, ' ', nFamIndex ); - sal_Char aFirst = aToken.toChar(); - if( aFirst >= 'a' && aFirst <= 'z' ) - aFirst = aFirst - 'a' + 'A'; - OStringBuffer aNewToken( aToken.getLength() ); - aNewToken.append( aToken ); - aNewToken[0] = aFirst; - if( aFamilyName.getLength() > 0 ) - aFamilyName.append( ' ' ); - aFamilyName.append( aNewToken.makeStringAndClear() ); - } - - rEntry.aFoundry = aFoundry; - rEntry.aFamily = aFamilyName.makeStringAndClear(); - rEntry.aAddStyle = aAddStyle; - // evaluate weight - rEntry.eWeight = parseWeight( aWeight ); - // evaluate slant - rEntry.eItalic = parseItalic( aSlant ); - // evaluate width - rEntry.eWidth = parseWidth( aWidth ); - - // evaluate pitch - if( aPitch.toChar() == 'c' || aPitch.toChar() == 'm' ) - rEntry.ePitch = PITCH_FIXED; - else - rEntry.ePitch = PITCH_VARIABLE; - - OString aToken = aEnc.toAsciiLowerCase(); - // get encoding - if( aAddStyle.indexOf( "symbol" ) != -1 ) - rEntry.aEncoding = RTL_TEXTENCODING_SYMBOL; - else - { - if( aToken.equals( "symbol" ) ) - rEntry.aEncoding = RTL_TEXTENCODING_SYMBOL; - else - { - OStringBuffer aCharset( aRegEnc.getLength() + aEnc.getLength() + 1 ); - aCharset.append( aRegEnc ); - aCharset.append( '-' ); - aCharset.append( aEnc ); - rEntry.aEncoding = rtl_getTextEncodingFromUnixCharset( aCharset.getStr() ); - } - } - - // set correct mask flags - rEntry.nMask = 0; - if( rEntry.aFoundry != "*" ) rEntry.nMask |= XLFDEntry::MaskFoundry; - if( rEntry.aFamily != "*" ) rEntry.nMask |= XLFDEntry::MaskFamily; - if( rEntry.aAddStyle != "*" ) rEntry.nMask |= XLFDEntry::MaskAddStyle; - if( aWeight != "*" ) rEntry.nMask |= XLFDEntry::MaskWeight; - if( aSlant != "*" ) rEntry.nMask |= XLFDEntry::MaskItalic; - if( aWidth != "*" ) rEntry.nMask |= XLFDEntry::MaskWidth; - if( aPitch != "*" ) rEntry.nMask |= XLFDEntry::MaskPitch; - if( aRegEnc != "*" && aEnc != "*" ) rEntry.nMask |= XLFDEntry::MaskEncoding; - - return true; -} - -// ------------------------------------------------------------------------- - -void PrintFontManager::parseXLFD_appendAliases( const std::list< OString >& rXLFDs, std::list< XLFDEntry >& rEntries ) const -{ - for( std::list< OString >::const_iterator it = rXLFDs.begin(); it != rXLFDs.end(); ++it ) - { - XLFDEntry aEntry; - if( ! parseXLFD(*it, aEntry) ) - continue; - rEntries.push_back( aEntry ); - std::map< XLFDEntry, std::list< XLFDEntry > >::const_iterator alias_it = - m_aXLFD_Aliases.find( aEntry ); - if( alias_it != m_aXLFD_Aliases.end() ) - { - rEntries.insert( rEntries.end(), alias_it->second.begin(), alias_it->second.end() ); - } - } -} - -// ------------------------------------------------------------------------- - -void PrintFontManager::getFontAttributesFromXLFD( PrintFont* pFont, const std::list< OString >& rXLFDs ) const -{ - bool bFamilyName = false; - - std::list< XLFDEntry > aXLFDs; - - parseXLFD_appendAliases( rXLFDs, aXLFDs ); - - for( std::list< XLFDEntry >::const_iterator it = aXLFDs.begin(); - it != aXLFDs.end(); ++it ) - { - // set family name or alias - int nFam = - m_pAtoms->getAtom( ATOM_FAMILYNAME, - OStringToOUString( it->aFamily, it->aAddStyle.indexOf( "utf8" ) != -1 ? RTL_TEXTENCODING_UTF8 : RTL_TEXTENCODING_ISO_8859_1 ), - sal_True ); - if( ! bFamilyName ) - { - bFamilyName = true; - pFont->m_nFamilyName = nFam; - switch( pFont->m_eType ) - { - case fonttype::Type1: - static_cast<Type1FontFile*>(pFont)->m_aXLFD = rXLFDs.front(); - break; - case fonttype::TrueType: - static_cast<TrueTypeFontFile*>(pFont)->m_aXLFD = rXLFDs.front(); - break; - default: - break; - } - } - else - { - // make sure that aliases are unique - if( nFam != pFont->m_nFamilyName ) - { - std::list< int >::const_iterator al_it; - for( al_it = pFont->m_aAliases.begin(); al_it != pFont->m_aAliases.end() && *al_it != nFam; ++al_it ) - ; - if( al_it == pFont->m_aAliases.end() ) - pFont->m_aAliases.push_back( nFam ); - - } - // for the rest of the attributes there can only be one value; - // we'll trust the first one - continue; - } - - // fill in weight - pFont->m_eWeight = it->eWeight; - // fill in slant - pFont->m_eItalic = it->eItalic; - // fill in width - pFont->m_eWidth = it->eWidth; - // fill in pitch - pFont->m_ePitch = it->ePitch; - // fill in encoding - pFont->m_aEncoding = it->aEncoding; - } - - // handle iso8859-1 as ms1252 to fill the "gap" starting at 0x80 - if( pFont->m_aEncoding == RTL_TEXTENCODING_ISO_8859_1 ) - pFont->m_aEncoding = RTL_TEXTENCODING_MS_1252; - if( rXLFDs.begin() != rXLFDs.end() ) - { - switch( pFont->m_eType ) - { - case fonttype::Type1: - static_cast<Type1FontFile*>(pFont)->m_aXLFD = rXLFDs.front(); - break; - case fonttype::TrueType: - static_cast<TrueTypeFontFile*>(pFont)->m_aXLFD = rXLFDs.front(); - break; - default: break; - } - } -} - -// ------------------------------------------------------------------------- - OUString PrintFontManager::convertTrueTypeName( void* pRecord ) const { NameRecord* pNameRecord = (NameRecord*)pRecord; @@ -2027,47 +1658,6 @@ bool PrintFontManager::analyzeTrueTypeFile( PrintFont* pFont ) const return bSuccess; } -// ------------------------------------------------------------------------- - -void PrintFontManager::initFontsAlias() -{ - m_aXLFD_Aliases.clear(); - rtl_TextEncoding aEnc = osl_getThreadTextEncoding(); - for( std::list< OString >::const_iterator dir_it = m_aFontDirectories.begin(); - dir_it != m_aFontDirectories.end(); ++dir_it ) - { - OStringBuffer aDirName(512); - aDirName.append( *dir_it ); - aDirName.append( "/fonts.alias" ); - SvFileStream aStream( OStringToOUString( aDirName.makeStringAndClear(), aEnc ), STREAM_READ ); - if( ! aStream.IsOpen() ) - continue; - - do - { - ByteString aLine; - aStream.ReadLine( aLine ); - - // get the alias and the pattern it gets translated to - ByteString aAlias = GetCommandLineToken( 0, aLine ); - ByteString aMap = GetCommandLineToken( 1, aLine ); - - // remove eventual quotes - aAlias = comphelper::string::stripStart(aAlias, '"'); - aAlias = comphelper::string::stripEnd(aAlias, '"'); - aMap = comphelper::string::stripStart(aMap, '"'); - aMap = comphelper::string::stripEnd(aMap, '"'); - - XLFDEntry aAliasEntry, aMapEntry; - parseXLFD( aAlias, aAliasEntry ); - parseXLFD( aMap, aMapEntry ); - - if( aAliasEntry.nMask && aMapEntry.nMask ) - m_aXLFD_Aliases[ aMapEntry ].push_back( aAliasEntry ); - } while( ! aStream.IsEof() ); - } -} - static bool AreFCSubstitutionsEnabled() { return (SalGenericInstance::FetchFontSubstitutionFlags() & 3) == 0; @@ -2160,9 +1750,6 @@ void PrintFontManager::initialize() // Don't search directories that fontconfig already did countFontconfigFonts( visited_dirs ); - // fill XLFD aliases from fonts.alias files - initFontsAlias(); - // search for font files in each path std::list< OString >::iterator dir_it; for( dir_it = m_aFontDirectories.begin(); dir_it != m_aFontDirectories.end(); ++dir_it ) @@ -2207,89 +1794,6 @@ void PrintFontManager::initialize() continue; } - DIR* pDIR = opendir( aPath.getStr() ); - struct dirent* pEntry = (struct dirent*)aDirEntBuffer; - if( pDIR ) - { - // read fonts.dir if possible - ::boost::unordered_map< OString, ::std::list<OString>, OStringHash > aFontsDir; - int nDirID = getDirectoryAtom( aPath, true ); - // #i38367# no fonts.dir in our own directories anymore - std::list< int >::const_iterator priv_dir; - for( priv_dir = m_aPrivateFontDirectories.begin(); - priv_dir != m_aPrivateFontDirectories.end() && *priv_dir != nDirID; - ++priv_dir ) - ; - - if( priv_dir == m_aPrivateFontDirectories.end() ) - { - ByteString aGccDummy( aPath ); - String aFontsDirPath( aGccDummy, aEncoding ); - aFontsDirPath.AppendAscii( "/fonts.dir" ); - SvFileStream aStream( aFontsDirPath, STREAM_READ ); - if( aStream.IsOpen() ) - { - ByteString aLine; - while( ! aStream.IsEof() ) - { - aStream.ReadLine( aLine ); - ByteString aFileName( GetCommandLineToken( 0, aLine ) ); - ByteString aXLFD( aLine.Copy( aFileName.Len() ) ); - if( aFileName.Len() && aXLFD.Len() ) - aFontsDir[ aFileName ].push_back(aXLFD); - } - } - } - - int nDirFonts = 0; - while( ! readdir_r( pDIR, (struct dirent*)aDirEntBuffer, &pEntry ) && pEntry ) - { - OString aFileName( pEntry->d_name ); - // ignore .afm files here - if( aFileName.getLength() > 3 && - aFileName.lastIndexOf( ".afm" ) == aFileName.getLength()-4 ) - continue; - - struct stat aStat; - rtl::OStringBuffer aFilePath(aPath); - aFilePath.append('/').append(aFileName); - if( ! stat( aFilePath.getStr(), &aStat ) && - S_ISREG( aStat.st_mode ) ) - { - if (!knownFontFile(nDirID, aFileName)) - { - ::std::list<OString> aXLFDs; - ::boost::unordered_map< OString, ::std::list<OString>, OStringHash >::const_iterator it = - aFontsDir.find( aFileName ); - if( it != aFontsDir.end() ) - aXLFDs = (*it).second; - - // fill in font attributes from XLFD rather - // than reading every file - ::std::list< PrintFont* > aNewFonts; - if( analyzeFontFile( nDirID, aFileName, aXLFDs, aNewFonts ) ) - { - for( ::std::list< PrintFont* >::iterator font_it = aNewFonts.begin(); font_it != aNewFonts.end(); ++font_it ) - { - fontID aFont = m_nNextFontID++; - m_aFonts[ aFont ] = *font_it; - m_aFontFileToFontID[ aFileName ].insert( aFont ); - m_pFontCache->updateFontCacheEntry( *font_it, false ); - nDirFonts++; -#if OSL_DEBUG_LEVEL > 2 - fprintf( stderr, "adding font %d: from %s\n", aFont, - getFontFileSysPath( aFont ).getStr() ); -#endif - } - } - } - } - } - closedir( pDIR ); - m_pFontCache->updateDirTimestamp( nDirID ); - if( ! nDirFonts ) - m_pFontCache->markEmptyDir( nDirID ); - } } #if OSL_DEBUG_LEVEL > 1 @@ -2300,7 +1804,6 @@ void PrintFontManager::initialize() std::list< OUString > aMetricDirs; psp::getPrinterPathList( aMetricDirs, PRINTER_METRICDIR ); - std::list< OString > aEmptyFontsDir; for( std::list< OUString >::const_iterator met_dir_it = aMetricDirs.begin(); met_dir_it != aMetricDirs.end(); ++met_dir_it ) { OString aDir = OUStringToOString( *met_dir_it, aEncoding ); @@ -2358,7 +1861,7 @@ void PrintFontManager::initialize() { ::std::list< PrintFont* > aNewFonts; - analyzeFontFile( nDirID, aFileName, aEmptyFontsDir, aNewFonts ); + analyzeFontFile( nDirID, aFileName, aNewFonts ); for( ::std::list< PrintFont* >::iterator it = aNewFonts.begin(); it != aNewFonts.end(); ++it ) { if( findFontBuiltinID( (*it)->m_nPSName ) == 0 ) diff --git a/vcl/inc/vcl/fontmanager.hxx b/vcl/inc/vcl/fontmanager.hxx index b5edccdb12c5..78481e477818 100644 --- a/vcl/inc/vcl/fontmanager.hxx +++ b/vcl/inc/vcl/fontmanager.hxx @@ -236,7 +236,6 @@ class VCL_PLUGIN_PUBLIC PrintFontManager int m_nDirectory; // atom containing system dependent path rtl::OString m_aFontFile; // relative to directory rtl::OString m_aMetricFile; // dito - rtl::OString m_aXLFD; // mainly for administration, contains the XLFD from fonts.dir /* note: m_aFontFile and Metric file are not atoms because they should be fairly unique */ @@ -250,7 +249,6 @@ class VCL_PLUGIN_PUBLIC PrintFontManager { int m_nDirectory; // atom containing system dependent path rtl::OString m_aFontFile; // relative to directory - rtl::OString m_aXLFD; // mainly for administration, contains the XLFD from fonts.dir int m_nCollectionEntry; // 0 for regular fonts, 0 to ... for fonts stemming from collections unsigned int m_nTypeFlags; // copyright bits and PS-OpenType flag @@ -269,34 +267,6 @@ class VCL_PLUGIN_PUBLIC PrintFontManager virtual bool queryMetricPage( int nPage, utl::MultiAtomProvider* pProvider ); }; - struct XLFDEntry - { - static const int MaskFoundry = 1; - static const int MaskFamily = 2; - static const int MaskAddStyle = 4; - static const int MaskItalic = 8; - static const int MaskWeight = 16; - static const int MaskWidth = 32; - static const int MaskPitch = 64; - static const int MaskEncoding = 128; - - int nMask; // contains a bit set for every valid member - - rtl::OString aFoundry; - rtl::OString aFamily; - rtl::OString aAddStyle; - FontItalic eItalic; - FontWeight eWeight; - FontWidth eWidth; - FontPitch ePitch; - rtl_TextEncoding aEncoding; - - XLFDEntry() { nMask = 0; } - - bool operator<(const XLFDEntry& rRight) const; - bool operator==(const XLFDEntry& rRight) const; - }; - static rtl::OString s_aEmptyOString; fontID m_nNextFontID; @@ -305,8 +275,6 @@ class VCL_PLUGIN_PUBLIC PrintFontManager std::list< rtl::OUString > m_aPrinterDrivers; std::list< rtl::OString > m_aFontDirectories; std::list< int > m_aPrivateFontDirectories; - std::map< struct XLFDEntry, std::list< struct XLFDEntry > > - m_aXLFD_Aliases; utl::MultiAtomProvider* m_pAtoms; // for speeding up findFontFileID boost::unordered_map< rtl::OString, std::set< fontID >, rtl::OStringHash > @@ -331,9 +299,7 @@ class VCL_PLUGIN_PUBLIC PrintFontManager rtl::OString getAfmFile( PrintFont* pFont ) const; rtl::OString getFontFile( PrintFont* pFont ) const; - void getFontAttributesFromXLFD( PrintFont* pFont, const std::list< rtl::OString >& rXLFDs ) const; - - bool analyzeFontFile( int nDirID, const rtl::OString& rFileName, const std::list< rtl::OString >& rXLFDs, std::list< PrintFont* >& rNewFonts, const char *pFormat=NULL ) const; + bool analyzeFontFile( int nDirID, const rtl::OString& rFileName, std::list< PrintFont* >& rNewFonts, const char *pFormat=NULL ) const; rtl::OUString convertTrueTypeName( void* pNameRecord ) const; // actually a NameRecord* formt font subsetting code void analyzeTrueTypeFamilyName( void* pTTFont, std::list< rtl::OUString >& rnames ) const; // actually a TrueTypeFont* from font subsetting code bool analyzeTrueTypeFile( PrintFont* pFont ) const; @@ -387,10 +353,6 @@ class VCL_PLUGIN_PUBLIC PrintFontManager */ bool addFontconfigDir(const rtl::OString& rDirectory); - static bool parseXLFD( const rtl::OString& rXLFD, XLFDEntry& rEntry ); - void parseXLFD_appendAliases( const std::list< rtl::OString >& rXLFDs, std::list< XLFDEntry >& rEntries ) const; - void initFontsAlias(); - bool readOverrideMetrics(); PrintFontManager(); |