mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-21 04:56:28 +02:00
[core/ui] add a locked property on nodes
Add locked property on core nodes and update UI in the same commit because both parts are very dependent for this change.
This commit is contained in:
parent
8a9499a711
commit
ff7f8b3e36
5 changed files with 69 additions and 118 deletions
|
@ -873,7 +873,7 @@ class Graph(BaseObject):
|
|||
flowEdges.append(link)
|
||||
return flowEdges
|
||||
|
||||
def nodesFromNode(self, startNode, filterTypes=None):
|
||||
def nodesFromNode(self, startNode, filterTypes=None, reverse=True):
|
||||
"""
|
||||
Return the node chain from startNode to the graph leaves.
|
||||
|
||||
|
@ -881,6 +881,9 @@ class Graph(BaseObject):
|
|||
startNode (Node): the node to start the visit from.
|
||||
filterTypes (str list): (optional) only return the nodes of the given types
|
||||
(does not stop the visit, this is a post-process only)
|
||||
reverse (bool): (optional) direction of visit.
|
||||
True is for getting nodes depending on the startNode.
|
||||
False is for getting nodes required for the startNode.
|
||||
Returns:
|
||||
The list of nodes and edges, from startNode to the graph leaves following edges.
|
||||
"""
|
||||
|
@ -894,22 +897,15 @@ class Graph(BaseObject):
|
|||
|
||||
visitor.discoverVertex = discoverVertex
|
||||
visitor.examineEdge = lambda edge, graph: edges.append(edge)
|
||||
self.dfs(visitor=visitor, startNodes=[startNode], reverse=True)
|
||||
self.dfs(visitor=visitor, startNodes=[startNode], reverse=reverse)
|
||||
return nodes, edges
|
||||
|
||||
@Slot(Node, result="QVariantList")
|
||||
def onlyNodesFromNode(self, startNode, filterType=None):
|
||||
nodes = []
|
||||
edges = []
|
||||
visitor = Visitor()
|
||||
def nodesDependingOnNode(self, startNode, filterTypes=None):
|
||||
nodes, edges = self.nodesFromNode(startNode, filterTypes=filterTypes, reverse=True)
|
||||
return nodes
|
||||
|
||||
def discoverVertex(vertex, graph):
|
||||
if not filterType or vertex.nodeType == filterType:
|
||||
nodes.append(vertex)
|
||||
|
||||
visitor.discoverVertex = discoverVertex
|
||||
visitor.examineEdge = lambda edge, graph: edges.append(edge)
|
||||
self.dfs(visitor=visitor, startNodes=[startNode], reverse=True)
|
||||
def nodesRequiredForNode(self, startNode, filterTypes=None):
|
||||
nodes, edges = self.nodesFromNode(startNode, filterTypes=filterTypes, reverse=False)
|
||||
return nodes
|
||||
|
||||
@Slot(Node, result=int)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue