[vlc-commits] skins2: fix font path processing

Erwan Tulou git at videolan.org
Tue Mar 1 21:19:47 CET 2011


vlc | branch: master | Erwan Tulou <erwan10 at videolan.org> | Tue Mar  1 18:49:26 2011 +0100| [f087951536d97d534b37dbb836ff3552d202d828] | committer: Erwan Tulou

skins2: fix font path processing

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f087951536d97d534b37dbb836ff3552d202d828
---

 modules/gui/skins2/parser/builder.cpp |   51 +++++++++++++++------------------
 1 files changed, 23 insertions(+), 28 deletions(-)

diff --git a/modules/gui/skins2/parser/builder.cpp b/modules/gui/skins2/parser/builder.cpp
index d41f6b1..6860055 100644
--- a/modules/gui/skins2/parser/builder.cpp
+++ b/modules/gui/skins2/parser/builder.cpp
@@ -278,41 +278,36 @@ void Builder::addBitmapFont( const BuilderData::BitmapFont &rData )
 
 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;
     }
 }
 



More information about the vlc-commits mailing list