void Builder::addFont( const BuilderData::Font &rData )
{
- string full_path = getFilePath( rData.m_fontFile );
- if( !full_path.size() )
- return;
-
// Try to load the font from the theme directory
- GenericFont *pFont = new FT2Font( getIntf(), full_path, rData.m_size );
- if( pFont->init() )
- {
- m_pTheme->m_fonts[rData.m_id] = GenericFontPtr( pFont );
- }
- else
+ string full_path = getFilePath( rData.m_fontFile );
+ if( full_path.size() )
{
+ GenericFont *pFont = new FT2Font( getIntf(), full_path, rData.m_size );
+ if( pFont->init() )
+ {
+ m_pTheme->m_fonts[rData.m_id] = GenericFontPtr( pFont );
+ return;
+ }
delete pFont;
+ }
- // Font not found; try in the resource path
- OSFactory *pOSFactory = OSFactory::instance( getIntf() );
- const list<string> &resPath = pOSFactory->getResourcePath();
- const string &sep = pOSFactory->getDirSeparator();
+ // Font not found; try in the resource path
+ OSFactory *pOSFactory = OSFactory::instance( getIntf() );
+ const list<string> &resPath = pOSFactory->getResourcePath();
+ const string &sep = pOSFactory->getDirSeparator();
- list<string>::const_iterator it;
- for( it = resPath.begin(); it != resPath.end(); ++it )
+ list<string>::const_iterator it;
+ for( it = resPath.begin(); it != resPath.end(); ++it )
+ {
+ string path = (*it) + sep + "fonts" + sep + rData.m_fontFile;
+ GenericFont *pFont = new FT2Font( getIntf(), path, rData.m_size );
+ if( pFont->init() )
{
- string path = (*it) + sep + "fonts" + sep + rData.m_fontFile;
- pFont = new FT2Font( getIntf(), path, rData.m_size );
- if( pFont->init() )
- {
- // Font loaded successfully
- m_pTheme->m_fonts[rData.m_id] = GenericFontPtr( pFont );
- break;
- }
- else
- {
- delete pFont;
- }
+ // Font loaded successfully
+ m_pTheme->m_fonts[rData.m_id] = GenericFontPtr( pFont );
+ return;
}
+ delete pFont;
}
}