X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8a7fd294aeb67932e1057bf967958bbe5a959cfb..436076df36a87a4ae36f9dbf342a0f280442ed41:/components.py diff --git a/components.py b/components.py index af0fbffa..9513516d 100644 --- a/components.py +++ b/components.py @@ -38,6 +38,8 @@ class GUISkin: except: pass + # DIESER KOMMENTAR IST NUTZLOS UND MITTLERWEILE VERALTET! (glaub ich) + # BITTE NICHT LESEN! # note: you'll probably run into this assert. if this happens, don't panic! # yes, it's evil. I told you that programming in python is just fun, and # suddently, you have to care about things you don't even know. @@ -114,7 +116,7 @@ class VariableText: def GUIdelete(self): self.removeWidget(self.instance) - del self.instance + self.instance = None def removeWidget(self, instance): pass @@ -140,7 +142,7 @@ class VariableValue: def GUIdelete(self): self.removeWidget(self.instance) - del self.instance + self.instance = None def removeWidget(self, instance): pass @@ -271,7 +273,63 @@ class MenuList(HTMLComponent, GUIComponent): def GUIdelete(self): self.instance.setContent(None) - del self.instance + self.instance = None + + +# temp stuff :) +class configBoolean: + def __init__(self, reg): + self.reg = reg + self.val = 0 + + def toggle(self): + self.val += 1 + self.val %= 3 + + def __str__(self): + return ("NO", "YES", "MAYBE")[self.val] + +class configValue: + def __init__(self, obj): + self.obj = obj + + def __str__(self): + return self.obj + +def configEntry(obj): + # das hier ist ein zugriff auf die registry... + if obj == "HKEY_LOCAL_ENIGMA/IMPORTANT/USER_ANNOYING_STUFF/SDTV/FLASHES/GREEN": + return ("SDTV green flashes", configBoolean(obj)) + elif obj == "HKEY_LOCAL_ENIGMA/IMPORTANT/USER_ANNOYING_STUFF/HDTV/FLASHES/GREEN": + return ("HDTV reen flashes", configBoolean(obj)) + else: + return ("invalid", "") + +class ConfigList(HTMLComponent, GUIComponent): + def __init__(self, list): + GUIComponent.__init__(self) + self.l = eListboxPythonConfigContent() + self.l.setList(list) + self.l.setSeperation(100) + + def toggle(self): + selection = self.getCurrent() + selection[1].toggle() + self.invalidateCurrent() + + def getCurrent(self): + return self.l.getCurrentSelection() + + def invalidateCurrent(self): + self.l.invalidateEntry(self.l.getCurrentSelectionIndex()) + + def GUIcreate(self, parent, skindata): + self.instance = eListbox(parent) + self.instance.setContent(self.l) + + def GUIdelete(self): + self.instance.setContent(None) + self.instance = None class ServiceList(HTMLComponent, GUIComponent): def __init__(self): @@ -282,13 +340,19 @@ class ServiceList(HTMLComponent, GUIComponent): r = eServiceReference() self.l.getCurrent(r) return r + + def moveUp(self): + self.instance.moveSelection(self.instance.moveUp) + + def moveDown(self): + self.instance.moveSelection(self.instance.moveDown) def GUIcreate(self, parent, skindata): self.instance = eListbox(parent) self.instance.setContent(self.l) def GUIdelete(self): - del self.instance + self.instance = None def setRoot(self, root): self.l.setRoot(root) @@ -314,12 +378,12 @@ class ServiceScan: Error = 4 Errors = { + 0: "error starting scanning", 1: "error while scanning", 2: "no resource manager", 3: "no channel list" } - - + def scanStatusChanged(self): if self.state == self.Running: self.progressbar.setValue(self.scan.getProgress()) @@ -350,8 +414,10 @@ class ServiceScan: def execBegin(self): self.scan.statusChanged.get().append(self.scanStatusChanged) self.state = self.Running - if self.scan.start(): + err = self.scan.start() + if err: self.state = self.Error + self.errorcode = 0 self.scanStatusChanged() @@ -382,9 +448,9 @@ class ActionMap: def action(self, context, action): print " ".join(("action -> ", context, action)) - try: + if self.actions.has_key(action): self.actions[action]() - except KeyError: + else: print "unknown action %s/%s! typo in keymap?" % (context, action) class PerServiceDisplay(GUIComponent, VariableText): @@ -434,11 +500,11 @@ class EventInfo(PerServiceDisplay): if not self.navcore.getCurrentService(service): if not service.info(info): ev = eServiceEventPtr() - info.getEvent(ev, self.now_or_next & 1) - if self.now_or_next & 2: - self.setText("%d min" % (ev.m_duration / 60)) - else: - self.setText(ev.m_event_name) + if info.getEvent(ev, self.now_or_next & 1) == 0: + if self.now_or_next & 2: + self.setText("%d min" % (ev.m_duration / 60)) + else: + self.setText(ev.m_event_name) print "new event info in EventInfo! yeah!" def stopEvent(self): @@ -463,3 +529,4 @@ class ServiceName(PerServiceDisplay): def stopEvent(self): self.setText(""); +