[ui] grapheditor: explicitly pass selected nodes argument

This commit is contained in:
ChemicalXandco 2021-01-26 21:13:16 +00:00
parent aef50d9bde
commit acf1bf2116
4 changed files with 105 additions and 155 deletions

View file

@ -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):