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):
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"],
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()
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 = [ ]
selection = self["nimlist"].getCurrent()
if selection[1].nimType != -1: #unknown/empty
self.session.open(NimSetup, selection[1].slotid)
-
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
# 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"):