diff -r 96b242e4c59d -r 38c5de794e62 editors/Viewer.py --- a/editors/Viewer.py Fri Sep 27 16:22:40 2013 +0200 +++ b/editors/Viewer.py Fri Sep 27 16:27:54 2013 +0200 @@ -1089,10 +1089,11 @@ self.ResetBuffer() instance = {} # List of ids of already loaded blocks - ids = [] + ids = self.Controler.GetEditedElementInstancesIds(self.TagName, debug = self.Debug) # Load Blocks until they are all loaded - while instance is not None: - instance = self.Controler.GetEditedElementInstanceInfos(self.TagName, exclude = ids, debug = self.Debug) + while len(ids) > 0: + instance = self.Controler.GetEditedElementInstanceInfos( + self.TagName, ids.popitem(0)[0], debug = self.Debug) if instance is not None: self.loadInstance(instance, ids, selection) @@ -1221,7 +1222,6 @@ # Load instance from given informations def loadInstance(self, instance, ids, selection): - ids.append(instance["id"]) self.current_id = max(self.current_id, instance["id"]) creation_function = ElementCreationFunctions.get(instance["type"], None) connectors = {"inputs" : [], "outputs" : []} @@ -1319,7 +1319,7 @@ links_connected = False continue - if refLocalId not in ids: + if ids.pop(refLocalId, False): new_instance = self.Controler.GetEditedElementInstanceInfos(self.TagName, refLocalId, debug = self.Debug) if new_instance is not None: self.loadInstance(new_instance, ids, selection)