editors/LDViewer.py
changeset 1753 19f19c66b67e
parent 1745 f9d32913bad4
child 1765 ccf59c1f0b45
equal deleted inserted replaced
1752:d14ff9d7eb76 1753:19f19c66b67e
    68     for element, values in element_tree.items():
    68     for element, values in element_tree.items():
    69         if "stop" in values["children"]:
    69         if "stop" in values["children"]:
    70             removed = []
    70             removed = []
    71             for child in values["children"]:
    71             for child in values["children"]:
    72                 if child != "stop":
    72                 if child != "stop":
    73 ##                    if child in elements:
    73 #                    if child in elements:
    74 ##                        RemoveElement(child, element_tree)
    74 #                        RemoveElement(child, element_tree)
    75 ##                        removed.append(child)
    75 #                        removed.append(child)
    76                     if "start" in element_tree[child]["parents"]:
    76                     if "start" in element_tree[child]["parents"]:
    77                         if element not in remove_stops["stop"]:
    77                         if element not in remove_stops["stop"]:
    78                             remove_stops["stop"].append(element)
    78                             remove_stops["stop"].append(element)
    79                         if child not in remove_stops["start"]:
    79                         if child not in remove_stops["start"]:
    80                             remove_stops["start"].append(child)
    80                             remove_stops["start"].append(child)
    98     if remove in element_tree and element_tree[remove]:
    98     if remove in element_tree and element_tree[remove]:
    99         for child in element_tree[remove]["children"]:
    99         for child in element_tree[remove]["children"]:
   100             if child != "stop":
   100             if child != "stop":
   101                 RemoveElement(child, element_tree)
   101                 RemoveElement(child, element_tree)
   102         element_tree.pop(remove)
   102         element_tree.pop(remove)
   103 ##        element_tree[remove] = None
   103 #        element_tree[remove] = None
   104 
   104 
   105 
   105 
   106 def GenerateTree(element, element_tree, stop_list):
   106 def GenerateTree(element, element_tree, stop_list):
   107     if element in element_tree:
   107     if element in element_tree:
   108         connectors = element.GetConnectors()
   108         connectors = element.GetConnectors()
   116                 input_connectors = [connectors["input"]]
   116                 input_connectors = [connectors["input"]]
   117         for connector in input_connectors:
   117         for connector in input_connectors:
   118             for wire, handle in connector.GetWires():
   118             for wire, handle in connector.GetWires():
   119                 next = wire.EndConnected.GetParentBlock()
   119                 next = wire.EndConnected.GetParentBlock()
   120                 if isinstance(next, LD_PowerRail) and next.GetType() == LEFTRAIL or next in stop_list:
   120                 if isinstance(next, LD_PowerRail) and next.GetType() == LEFTRAIL or next in stop_list:
   121 ##                    for remove in element_tree[element]["children"]:
   121 #                    for remove in element_tree[element]["children"]:
   122 ##                        RemoveElement(remove, element_tree)
   122 #                        RemoveElement(remove, element_tree)
   123 ##                    element_tree[element]["children"] = ["stop"]
   123 #                    element_tree[element]["children"] = ["stop"]
   124                     element_tree[element]["children"].append("stop")
   124                     element_tree[element]["children"].append("stop")
   125 ##                elif element_tree[element]["children"] == ["stop"]:
   125 #                elif element_tree[element]["children"] == ["stop"]:
   126 ##                    element_tree[next] = None
   126 #                    element_tree[next] = None
   127                 elif next not in element_tree or element_tree[next]:
   127                 elif next not in element_tree or element_tree[next]:
   128                     element_tree[element]["children"].append(next)
   128                     element_tree[element]["children"].append(next)
   129                     if next in element_tree:
   129                     if next in element_tree:
   130                         element_tree[next]["parents"].append(element)
   130                         element_tree[next]["parents"].append(element)
   131                     else:
   131                     else: