when adding a manual timer, don't propose the original name/description.
[enigma2.git] / lib / python / Screens / Setup.py
index 09984bd8e518e810db5c73a4f5b638745f570ddc..59f0ff57733c94922f88f3d91f02b65e65dc9ee8 100644 (file)
@@ -1,4 +1,5 @@
 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
@@ -91,7 +92,7 @@ class Setup(ConfigListScreen, Screen):
                                "save": self.keySave,
                        }, -2)
 
-               ConfigListScreen.__init__(self, list, session = session)
+               ConfigListScreen.__init__(self, list, session = session, on_change = self.changedEntry)
 
                self.changedEntry()
 
@@ -104,7 +105,7 @@ class Setup(ConfigListScreen, Screen):
                return self["config"].getCurrent()[0]
 
        def getCurrentValue(self):
-               return str(self["config"].getCurrent()[1].value)
+               return str(self["config"].getCurrent()[1].getText())
 
        def createSummary(self):
                return SetupSummary
@@ -129,13 +130,27 @@ class Setup(ConfigListScreen, Screen):
                for x in self["config"].list:
                        x[1].save()
                self.close()
+       
+       def cancelConfirm(self, result):
+               if not result:
+                       return
 
-       def keyCancel(self):
                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"):