X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/26c642a28e6d5ce6e0d6ab0b89ea3697a4de0182..4c1d3d2f5cf39f72bf85041a6ba6665350ea742e:/lib/python/Components/Renderer/Picon.py diff --git a/lib/python/Components/Renderer/Picon.py b/lib/python/Components/Renderer/Picon.py index 060337af..5ae43ed8 100644 --- a/lib/python/Components/Renderer/Picon.py +++ b/lib/python/Components/Renderer/Picon.py @@ -3,18 +3,28 @@ ## from Renderer import Renderer from enigma import ePixmap -from Tools.Directories import pathExists, fileExists, SCOPE_SKIN_IMAGE, resolveFilename +from Tools.Directories import fileExists, SCOPE_SKIN_IMAGE, SCOPE_CURRENT_SKIN, resolveFilename class Picon(Renderer): - pngname = "" - nameCache = { } - searchPaths = ['/etc/picon/', - '/media/cf/picon/', - '/media/usb/picon/', - '/media/hdd/picon/'] + searchPaths = ('/usr/share/enigma2/%s/', + '/media/cf/%s/', + '/media/usb/%s/') def __init__(self): Renderer.__init__(self) + self.path = "picon" + self.nameCache = { } + self.pngname = "" + + def applySkin(self, desktop, parent): + attribs = [ ] + for (attrib, value) in self.skinAttributes: + if attrib == "path": + self.path = value + else: + attribs.append((attrib,value)) + self.skinAttributes = attribs + return Renderer.applySkin(self, desktop, parent) GUI_WIDGET = ePixmap @@ -26,19 +36,22 @@ class Picon(Renderer): # strip all after last : pos = sname.rfind(':') if pos != -1: - sname = sname[:pos].rstrip(':') + sname = sname[:pos].rstrip(':').replace(':','_') pngname = self.nameCache.get(sname, "") if pngname == "": - pngname = self.findPicon(self.source.text) + pngname = self.findPicon(sname) if pngname != "": self.nameCache[sname] = pngname if pngname == "": # no picon for service found pngname = self.nameCache.get("default", "") if pngname == "": # no default yet in cache.. pngname = self.findPicon("picon_default") - self.nameCache[sname] = pngname - if pngname == "": # Fallback to enigma2 logo - pngname = resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/enigma2.png") + if pngname == "": + tmp = resolveFilename(SCOPE_CURRENT_SKIN, "picon_default.png") + if fileExists(tmp): + pngname = tmp + else: + pngname = resolveFilename(SCOPE_SKIN_IMAGE, "skin_default/picon_default.png") self.nameCache["default"] = pngname if self.pngname != pngname: self.instance.setPixmapFromFile(pngname) @@ -46,7 +59,7 @@ class Picon(Renderer): def findPicon(self, serviceName): for path in self.searchPaths: - pngname = path + serviceName + ".png" + pngname = (path % self.path) + serviceName + ".png" if fileExists(pngname): return pngname return ""