mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-22 05:26:29 +02:00
[commands] only re-create out edges when undoing RemoveNode
"in" edges are automatically recreated since serialized as a connection expression in Node's dict representation and resolved by addNode
This commit is contained in:
parent
daebef92f1
commit
fd0c209837
2 changed files with 17 additions and 13 deletions
|
@ -589,20 +589,25 @@ class Graph(BaseObject):
|
|||
return [edge for edge in self.edges if edge.src == attribute]
|
||||
|
||||
def removeNode(self, nodeName):
|
||||
"""
|
||||
Remove the node identified by 'nodeName' from the graph
|
||||
and return in and out edges removed by this operation in two dicts {dstAttr.fullName(), srcAttr.fullName()}
|
||||
"""
|
||||
node = self.node(nodeName)
|
||||
self._nodes.pop(nodeName)
|
||||
|
||||
edges = {}
|
||||
inEdges = {}
|
||||
outEdges = {}
|
||||
for attr in node._attributes:
|
||||
for edge in self.outEdges(attr):
|
||||
self.edges.remove(edge)
|
||||
edges[edge.dst.fullName()] = edge.src.fullName()
|
||||
outEdges[edge.dst.fullName()] = edge.src.fullName()
|
||||
if attr in self.edges.keys():
|
||||
edge = self.edges.pop(attr)
|
||||
edges[edge.dst.fullName()] = edge.src.fullName()
|
||||
inEdges[edge.dst.fullName()] = edge.src.fullName()
|
||||
|
||||
self.updateInternals()
|
||||
return edges
|
||||
return inEdges, outEdges
|
||||
|
||||
@Slot(str, result=Node)
|
||||
def addNewNode(self, nodeType, **kwargs):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue