X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/88b281557a05fb785a42274bf0f3bc328f9eebfd..ec55d380cf26ce2d8c14ec0167f97927a8f46d40:/skin.py diff --git a/skin.py b/skin.py index 03fe96bb..6baf6b71 100644 --- a/skin.py +++ b/skin.py @@ -10,12 +10,10 @@ 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, SCOPE_CURRENT_SKIN, fileExists +from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS, SCOPE_CURRENT_SKIN, SCOPE_CONFIG, fileExists from Tools.Import import my_import from Tools.LoadPixmap import LoadPixmap -from Tools.XMLTools import mergeText - colorNames = dict() def dump(x, i=0): @@ -31,13 +29,13 @@ class SkinError(Exception): self.message = message def __str__(self): - return self.message + return "{%s}: %s" % (config.skin.primary_skin, self.message) dom_skins = [ ] -def loadSkin(name): +def loadSkin(name, scope = SCOPE_SKIN): # read the skin - filename = resolveFilename(SCOPE_SKIN, name) + filename = resolveFilename(scope, name) mpath = path.dirname(filename) + "/" dom_skins.append((mpath, xml.etree.cElementTree.parse(filename).getroot())) @@ -56,6 +54,11 @@ config.skin = ConfigSubsection() config.skin.primary_skin = ConfigText(default = "skin.xml") profile("LoadSkin") +try: + loadSkin('skin_user.xml', SCOPE_CONFIG) +except (SkinError, IOError, AssertionError), err: + print "not loading user skin: ", err + try: loadSkin(config.skin.primary_skin.value) except (SkinError, IOError, AssertionError), err: @@ -474,13 +477,12 @@ def readSkin(screen, skin, names, desktop): ctype = converter.get('type') assert ctype, "'convert'-tag needs a 'type'-attribute" #print "Converter:", ctype - #parms = mergeText(converter.childNodes).strip() try: parms = converter.text.strip() except: parms = "" - #print "Params:", ctype - converter_class = my_import('.'.join(["Components", "Converter", ctype])).__dict__.get(ctype) + #print "Params:", parms + converter_class = my_import('.'.join(("Components", "Converter", ctype))).__dict__.get(ctype) c = None @@ -497,7 +499,7 @@ def readSkin(screen, skin, names, desktop): source = c - renderer_class = my_import('.'.join(["Components", "Renderer", wrender])).__dict__.get(wrender) + renderer_class = my_import('.'.join(("Components", "Renderer", wrender))).__dict__.get(wrender) renderer = renderer_class() # instantiate renderer