X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/5dc2120aaf6890256cdc25edfc5f0d83192b0291..5e214d181d1590e0002eabdc6f8395cd6ddde2a7:/lib/python/Screens/Subtitles.py diff --git a/lib/python/Screens/Subtitles.py b/lib/python/Screens/Subtitles.py index 24d9c747..54bc7a5b 100644 --- a/lib/python/Screens/Subtitles.py +++ b/lib/python/Screens/Subtitles.py @@ -1,8 +1,9 @@ from Screen import Screen +from Components.ServiceEventTracker import ServiceEventTracker from Components.ActionMap import ActionMap -from Components.ConfigList import ConfigList, ConfigListScreen +from Components.ConfigList import ConfigListScreen from Components.config import config, getConfigListEntry, ConfigNothing -from Components.Label import Label +from enigma import iPlayableService from Tools.ISO639 import LanguageCodes @@ -19,8 +20,21 @@ class Subtitles(Screen, ConfigListScreen): self.list = [] ConfigListScreen.__init__(self, self.list) self.infobar = self.session.infobar + self.fillList() + + self.__event_tracker = ServiceEventTracker(screen=self, eventmap= + { + iPlayableService.evUpdatedInfo: self.__updatedInfo + }) + self.cached_subtitle_checked = False + self.__selected_subtitle = None + + def fillList(self): + list = self.list + del list[:] + print "self.list", list if self.subtitlesEnabled(): - self.list.append(getConfigListEntry(_("Disable Subtitles"), ConfigNothing(), None)) + list.append(getConfigListEntry(_("Disable Subtitles"), ConfigNothing(), None)) sel = self.infobar.selected_subtitle else: sel = None @@ -30,15 +44,33 @@ class Subtitles(Screen, ConfigListScreen): else: text = _("Enable") if x[0] == 0: - self.list.append(getConfigListEntry(text+" DVB "+LanguageCodes[x[4]][0], ConfigNothing(), x)) + if LanguageCodes.has_key(x[4]): + list.append(getConfigListEntry(text+" DVB "+LanguageCodes[x[4]][0], ConfigNothing(), x)) + else: + list.append(getConfigListEntry(text+" DVB "+x[4], ConfigNothing(), x)) elif x[0] == 1: if x[4] == 'und': #undefined - self.list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2]), ConfigNothing(), x)) + list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2]), ConfigNothing(), x)) else: - self.list.append(getConfigListEntry(text+" TTX "+LanguageCodes[x[4]][0], ConfigNothing(), x)) + if LanguageCodes.has_key(x[4]): + list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+LanguageCodes[x[4]][0], ConfigNothing(), x)) + else: + list.append(getConfigListEntry(text+" TTX "+_("Page")+" %x%02x"%(x[3],x[2])+" "+x[4], ConfigNothing(), x)) + elif x[0] == 2: + types = (" UTF-8 text "," SSA / AAS "," .SRT file ") + if x[4] == 'und': #undefined + list.append(getConfigListEntry(text+types[x[2]]+_("Subtitles")+" %d" % x[1], ConfigNothing(), x)) + else: + if LanguageCodes.has_key(x[4]): + list.append(getConfigListEntry(text+types[x[2]]+_("Subtitles") + ' ' + LanguageCodes[x[4]][0], ConfigNothing(), x)) + else: + list.append(getConfigListEntry(text+types[x[2]]+_("Subtitles")+" %d " % x[1] +x[4], ConfigNothing(), x)) # return _("Disable subtitles") - self["config"].list = self.list - self["config"].l.setList(self.list) + self["config"].list = list + self["config"].l.setList(list) + + def __updatedInfo(self): + self.fillList() def getSubtitleList(self): s = self.infobar and self.infobar.getCurrentServiceSubtitle() @@ -64,7 +96,7 @@ class Subtitles(Screen, ConfigListScreen): ConfigListScreen.keyRight(self) def ok(self): - if len(self.list): + if self.list: cur = self["config"].getCurrent() self.enableSubtitle(cur[2]) self.close(1)