fix frequently segfault on clean shutdown
[enigma2.git] / lib / python / Components / config.py
index 7df6e762f7c3df5d0fa86e54d3b31c91acfb253e..de06871a59dff3936f14cf4b1dac388dba81a6ec 100644 (file)
@@ -328,6 +328,8 @@ class ConfigSequence(ConfigElement):
                
                self.default = default
                self.value = copy.copy(default)
+               
+               self.endNotifier = []
 
        def validate(self):
                max_pos = 0
@@ -344,6 +346,8 @@ class ConfigSequence(ConfigElement):
                        num += 1
 
                if self.marked_pos >= max_pos:
+                       for x in self.endNotifier:
+                               x(self)
                        self.marked_pos = max_pos - 1
 
                if self.marked_pos < 0:
@@ -357,6 +361,9 @@ class ConfigSequence(ConfigElement):
 
                if self.marked_pos >= total_len:
                        self.marked_pos = total_len - 1
+                       
+       def addEndNotifier(self, notifier):
+               self.endNotifier.append(notifier)
 
        def handleKey(self, key):
                if key == KEY_LEFT:
@@ -626,7 +633,7 @@ class ConfigSatlist(ConfigSelection):
        def __init__(self, list, default = None):
                if default is not None:
                        default = str(default)
-               ConfigSelection.__init__(self, choices = [(str(orbpos), desc) for (orbpos, desc) in list], default = default)
+               ConfigSelection.__init__(self, choices = [(str(orbpos), desc) for (orbpos, desc, flags) in list], default = default)
 
        def getOrbitalPosition(self):
                if self.value == "":