search font in current skin path when not found in font dir
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Thu, 17 Apr 2008 18:14:37 +0000 (18:14 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Thu, 17 Apr 2008 18:14:37 +0000 (18:14 +0000)
skin.py

diff --git a/skin.py b/skin.py
index 26c08207df24ed04d2ac96d4086e3e4af4984ca1..2c84afb71cb850484da2afcab6801cc5ecb69d18 100644 (file)
--- a/skin.py
+++ b/skin.py
@@ -11,7 +11,7 @@ from enigma import eSize, ePoint, gFont, eWindow, eLabel, ePixmap, eWindowStyleM
 from Components.config import ConfigSubsection, ConfigText, config
 from Components.Converter.Converter import Converter
 from Components.Sources.Source import Source, ObsoleteSource
-from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS
+from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS, fileExists
 from Tools.Import import my_import
 from Tools.LoadPixmap import LoadPixmap
 
@@ -265,7 +265,14 @@ def loadSingleSkinData(desktop, dom_skin, path_prefix):
                        name = str(font.getAttribute("name") or "Regular")
                        scale = int(font.getAttribute("scale") or "100")
                        is_replacement = font.getAttribute("replacement") != ""
-                       addFont(resolveFilename(SCOPE_FONTS, filename, path_prefix=path_prefix), name, scale, is_replacement)
+                       resolved_font = resolveFilename(SCOPE_FONTS, filename, path_prefix=path_prefix)
+                       if not fileExists(resolved_font): #when font is not available look at current skin path
+                               pos = config.skin.primary_skin.value.rfind('/')
+                               if pos != -1:
+                                       skin_path = resolveFilename(SCOPE_SKIN, config.skin.primary_skin.value[:pos+1]+filename, path_prefix=path_prefix)
+                                       if fileExists(skin_path):
+                                               resolved_font = skin_path
+                       addFont(resolved_font, name, scale, is_replacement)
        
        for windowstyle in elementsWithTag(skin.childNodes, "windowstyle"):
                style = eWindowStyleSkinned()