X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/78c828aae07db0b15a66577d9230cb848fe536fa..48158ec0bbc8e623febb4d04a54e2e435daf865e:/components.py diff --git a/components.py b/components.py index deb3760c..6f19a623 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. @@ -273,6 +275,62 @@ class MenuList(HTMLComponent, GUIComponent): self.instance.setContent(None) del self.instance + +# 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) + del self.instance + class ServiceList(HTMLComponent, GUIComponent): def __init__(self): GUIComponent.__init__(self) @@ -312,12 +370,25 @@ class ServiceScan: Running = 2 Done = 3 Error = 4 + + Errors = { + 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()) if self.scan.isDone(): - self.state = self.Done + errcode = self.scan.getError() + + if errcode == 0: + self.state = self.Done + else: + self.state = self.Error + self.errorcode = errcode else: self.text.setText("scan in progress - %d %% done!\n%d services found!" % (self.scan.getProgress(), self.scan.getNumServices())) @@ -325,7 +396,7 @@ class ServiceScan: self.text.setText("scan done!") if self.state == self.Error: - self.text.setText("ERROR - failed to scan!") + self.text.setText("ERROR - failed to scan (%s)!" % (self.Errors[self.errorcode]) ) def __init__(self, progressbar, text): self.progressbar = progressbar @@ -336,10 +407,10 @@ class ServiceScan: def execBegin(self): self.scan.statusChanged.get().append(self.scanStatusChanged) + self.state = self.Running if self.scan.start(): self.state = self.Error - else: - self.state = self.Running + self.scanStatusChanged() def execEnd(self):