mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-19 03:56:26 +02:00
[ui] grapheditor: explicitly pass selected nodes argument
This commit is contained in:
parent
aef50d9bde
commit
acf1bf2116
4 changed files with 105 additions and 155 deletions
|
@ -159,7 +159,7 @@ class RemoveNodeCommand(GraphCommand):
|
|||
|
||||
def redoImpl(self):
|
||||
# only keep outEdges since inEdges are serialized in nodeDict
|
||||
inEdges, self.outEdges = self.graph.removeNode(self.nodeName)
|
||||
_, self.outEdges = self.graph.removeNode(self.nodeName)
|
||||
return True
|
||||
|
||||
def undoImpl(self):
|
||||
|
@ -173,55 +173,26 @@ class RemoveNodeCommand(GraphCommand):
|
|||
self.graph.attribute(dstAttr))
|
||||
|
||||
|
||||
class _DuplicateNodes(GraphCommand):
|
||||
def __init__(self, graph, parent=None):
|
||||
super(_DuplicateNodes, self).__init__(graph, parent)
|
||||
self.duplicates = []
|
||||
|
||||
def undoImpl(self):
|
||||
# delete all the duplicated nodes
|
||||
for nodeName in self.duplicates:
|
||||
self.graph.removeNode(nodeName)
|
||||
|
||||
|
||||
class DuplicateNodeCommand(_DuplicateNodes):
|
||||
"""
|
||||
Handle node duplication in a Graph.
|
||||
"""
|
||||
def __init__(self, graph, srcNode, duplicateFollowingNodes, parent=None):
|
||||
super(DuplicateNodeCommand, self).__init__(graph, parent)
|
||||
self.srcNodeName = srcNode.name
|
||||
self.duplicateFollowingNodes = duplicateFollowingNodes
|
||||
|
||||
def redoImpl(self):
|
||||
srcNode = self.graph.node(self.srcNodeName)
|
||||
|
||||
if self.duplicateFollowingNodes:
|
||||
duplicates = list(self.graph.duplicateNodesFromNode(srcNode).values())
|
||||
self.setText("Duplicate {} nodes from {}".format(len(duplicates), self.srcNodeName))
|
||||
else:
|
||||
duplicates = [self.graph.duplicateNode(srcNode)]
|
||||
self.setText("Duplicate {}".format(self.srcNodeName))
|
||||
|
||||
self.duplicates = [n.name for n in duplicates]
|
||||
return duplicates
|
||||
|
||||
|
||||
class DuplicateNodeListCommand(_DuplicateNodes):
|
||||
class DuplicateNodesCommand(GraphCommand):
|
||||
"""
|
||||
Handle node duplication in a Graph.
|
||||
"""
|
||||
def __init__(self, graph, srcNodes, parent=None):
|
||||
super(DuplicateNodeListCommand, self).__init__(graph, parent)
|
||||
self.srcNodeNames = [ srcNode.name for srcNode in srcNodes ]
|
||||
self.setText("Duplicate selected nodes")
|
||||
super(DuplicateNodesCommand, self).__init__(graph, parent)
|
||||
self.srcNodeNames = [ n.name for n in srcNodes ]
|
||||
self.setText("Duplicate Nodes")
|
||||
|
||||
def redoImpl(self):
|
||||
srcNodes = [ self.graph.node(srcNodeName) for srcNodeName in self.srcNodeNames ]
|
||||
duplicates = list(self.graph.duplicateNodesFromList(srcNodes).values())
|
||||
srcNodes = [ self.graph.node(i) for i in self.srcNodeNames ]
|
||||
duplicates = list(self.graph.duplicateNodes(srcNodes).values())
|
||||
self.duplicates = [ n.name for n in duplicates ]
|
||||
return duplicates
|
||||
|
||||
def undoImpl(self):
|
||||
# remove all duplicates
|
||||
for duplicate in self.duplicates:
|
||||
self.graph.removeNode(duplicate)
|
||||
|
||||
|
||||
class SetAttributeCommand(GraphCommand):
|
||||
def __init__(self, graph, attribute, value, parent=None):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue