X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/f011625d4c8a1a7be9b6c147f5ab849fd5616071..19ce1123c780a9475e2f158712da6e73fa543e9c:/lib/python/Screens/Wizard.py diff --git a/lib/python/Screens/Wizard.py b/lib/python/Screens/Wizard.py index 7c39b3e4..cee057dc 100644 --- a/lib/python/Screens/Wizard.py +++ b/lib/python/Screens/Wizard.py @@ -302,7 +302,7 @@ class Wizard(Screen): if self.showConfig: if self.wizard[currStep]["config"]["type"] == "dynamic": eval("self." + self.wizard[currStep]["config"]["evaluation"])() - + if self.showList: if (len(self.wizard[currStep]["evaluatedlist"]) > 0): print "current:", self["list"].current @@ -401,7 +401,7 @@ class Wizard(Screen): self.resetCounter() if (self.showConfig and self.wizard[self.currStep]["config"]["screen"] != None): - self["config"].instance.moveSelection(self["config"].instance.moveUp) + self["config"].instance.moveSelection(self["config"].instance.moveUp) elif (self.showList and len(self.wizard[self.currStep]["evaluatedlist"]) > 0): if self.wizard[self.currStep].has_key("onselect"): self.selection = self["list"].current[-1] @@ -440,6 +440,8 @@ class Wizard(Screen): self.timeoutTimer.stop() if self.configInstance is not None: + # remove callbacks + self.configInstance["config"].onSelectionChanged = [] del self.configInstance["config"] self.configInstance.doClose() self.configInstance = None @@ -520,8 +522,12 @@ class Wizard(Screen): else: self.configInstance = self.session.instantiateDialog(self.wizard[self.currStep]["config"]["screen"], eval(self.wizard[self.currStep]["config"]["args"])) self["config"].l.setList(self.configInstance["config"].list) + callbacks = self.configInstance["config"].onSelectionChanged self.configInstance["config"].destroy() + print "clearConfigList", self.configInstance["config"], self["config"] self.configInstance["config"] = self["config"] + self.configInstance["config"].onSelectionChanged = callbacks + print "clearConfigList", self.configInstance["config"], self["config"] else: self["config"].l.setList([]) else: