##
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
# 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)
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 ""