X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6d7673190e7fec573aed8e15e98d470cd4189d52..b17019f43527d615589ce2083fb3d2a9058f2c3c:/lib/python/Screens/Setup.py?ds=sidebyside diff --git a/lib/python/Screens/Setup.py b/lib/python/Screens/Setup.py index 09984bd8..59f0ff57 100644 --- a/lib/python/Screens/Setup.py +++ b/lib/python/Screens/Setup.py @@ -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"):