move keySave, keyCancel into ConfigList.py, use cancel confirm in satsetup to fix...
authorFelix Domke <tmbinc@elitedvb.net>
Mon, 27 Nov 2006 00:50:26 +0000 (00:50 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Mon, 27 Nov 2006 00:50:26 +0000 (00:50 +0000)
lib/python/Components/ConfigList.py
lib/python/Screens/Satconfig.py
lib/python/Screens/Setup.py

index 4dd401f9475a0e0c5b3da27f6f82add44a5d330e..8b880fba2728bcda81e89f7df2910f63f38c782d 100644 (file)
@@ -3,6 +3,7 @@ from GUIComponent import *
 from config import KEY_LEFT, KEY_RIGHT, KEY_0, KEY_DELETE, KEY_OK, KEY_TIMEOUT, ConfigElement
 from Components.ActionMap import NumberActionMap
 from enigma import eListbox, eListboxPythonConfigContent, eTimer
+from Screens.MessageBox import MessageBox
 
 class ConfigList(HTMLComponent, GUIComponent, object):
        def __init__(self, list, session = None):
@@ -94,6 +95,13 @@ class ConfigList(HTMLComponent, GUIComponent, object):
        def timeout(self):
                self.handleKey(KEY_TIMEOUT)
 
+       def isChanged(self):
+               is_changed = False
+               for x in self.list:
+                       is_changed |= x[1].isChanged()
+
+               return is_changed
+
 class ConfigListScreen:
        def __init__(self, list, session = None, on_change = None):
                self["config_actions"] = NumberActionMap(["SetupActions", "TextInputActions"],
@@ -139,3 +147,23 @@ class ConfigListScreen:
                self["config"].handleKey(KEY_0 + number)
                self.__changed()
 
+       # keySave and keyCancel are just provided in case you need them.
+       # you have to call them by yourself.
+       def keySave(self):
+               for x in self["config"].list:
+                       x[1].save()
+               self.close()
+       
+       def cancelConfirm(self, result):
+               if not result:
+                       return
+
+               for x in self["config"].list:
+                       x[1].cancel()
+               self.close()
+
+       def keyCancel(self):
+               if self["config"].isChanged():
+                       self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?"))
+               else:
+                       self.close()
index d6d9904c08fec4787467ba6d3439dd1bcf6c2ecb..226c3a825f72c7b1033acdb6aff01d1bc1a59517 100644 (file)
@@ -153,11 +153,6 @@ class NimSetup(Screen, ConfigListScreen):
                self.run()
                self.close()
 
-       def keyCancel(self):
-               for x in self["config"].list:
-                       x[1].cancel()
-               self.close()
-
        def __init__(self, session, slotid):
                Screen.__init__(self, session)
                self.list = [ ]
@@ -198,4 +193,3 @@ class NimSelection(Screen):
                selection = self["nimlist"].getCurrent()
                if selection[1].nimType != -1:  #unknown/empty
                        self.session.open(NimSetup, selection[1].slotid)
-       
index 59f0ff57733c94922f88f3d91f02b65e65dc9ee8..432d82455386cd039272e2f159aec63ae05d0ccb 100644 (file)
@@ -1,5 +1,4 @@
 from Screen import Screen
-from MessageBox import MessageBox
 from Components.ActionMap import NumberActionMap
 from Components.config import config, KEY_LEFT, KEY_RIGHT, KEY_OK
 from Components.ConfigList import ConfigList, ConfigListScreen
@@ -125,32 +124,6 @@ class Setup(ConfigListScreen, Screen):
                                # the second one is converted to string.
                                list.append( (item_text, item) )
 
-       def keySave(self):
-               print "save requested"
-               for x in self["config"].list:
-                       x[1].save()
-               self.close()
-       
-       def cancelConfirm(self, result):
-               if not result:
-                       return
-
-               print "cancel requested"
-               
-               for x in self["config"].list:
-                       x[1].cancel()
-               self.close()
-
-       def keyCancel(self):
-               is_changed = False
-               for x in self["config"].list:
-                       is_changed |= x[1].isChanged()
-               
-               if is_changed:
-                       self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?"))
-               else:
-                       self.close()
-
 def getSetupTitle(id):
        xmldata = setupdom.childNodes[0].childNodes
        for x in elementsWithTag(xmldata, "setup"):