- self.instance won't be deleted but cleared - fix for VariableText
[enigma2.git] / components.py
index 6f19a623be7cffe7fb0428cb06cba195771ff788..9513516dfb1e64ee7f03a55df2f16c8fd7cad678 100644 (file)
@@ -116,7 +116,7 @@ class VariableText:
        
        def GUIdelete(self):
                self.removeWidget(self.instance)
-               del self.instance
+               self.instance = None
        
        def removeWidget(self, instance):
                pass
@@ -142,7 +142,7 @@ class VariableValue:
        
        def GUIdelete(self):
                self.removeWidget(self.instance)
-               del self.instance
+               self.instance = None
        
        def removeWidget(self, instance):
                pass
@@ -273,7 +273,7 @@ class MenuList(HTMLComponent, GUIComponent):
        
        def GUIdelete(self):
                self.instance.setContent(None)
-               del self.instance
+               self.instance = None
 
 
 #  temp stuff :)
@@ -329,7 +329,7 @@ class ConfigList(HTMLComponent, GUIComponent):
        
        def GUIdelete(self):
                self.instance.setContent(None)
-               del self.instance
+               self.instance = None
 
 class ServiceList(HTMLComponent, GUIComponent):
        def __init__(self):
@@ -340,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)
@@ -372,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())
@@ -408,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()
        
@@ -440,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):
@@ -492,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):
@@ -521,3 +529,4 @@ class ServiceName(PerServiceDisplay):
        
        def stopEvent(self):
                        self.setText("");
+