diff --git a/meshroom/core/graph.py b/meshroom/core/graph.py index edfc755feb..0dee724555 100644 --- a/meshroom/core/graph.py +++ b/meshroom/core/graph.py @@ -563,7 +563,9 @@ def findNode(self, nodeExpr): return candidates[0] def findNodes(self, nodesExpr): - return [self.findNode(nodeName) for nodeName in nodesExpr] + if isinstance(nodesExpr, list): + return [self.findNode(nodeName) for nodeName in nodesExpr] + return [self.findNode(nodesExpr)] def edge(self, dstAttributeName): return self._edges.get(dstAttributeName) diff --git a/meshroom/core/taskManager.py b/meshroom/core/taskManager.py index 5cc79fb9d2..9594816888 100644 --- a/meshroom/core/taskManager.py +++ b/meshroom/core/taskManager.py @@ -348,7 +348,7 @@ def checkNodesDependencies(self, graph, toNodes, context): raise ValueError("Argument 'context' must be: 'COMPUTATION' or 'SUBMITTING'") if len(ready) + len(computed) != len(toNodes): - toNodes.clear() + del toNodes[:] # for python 2 compatibility, else use: toNodes.clear() toNodes.extend(ready) return False @@ -367,7 +367,7 @@ def raiseImpossibleProcess(self, context): raise RuntimeError("[{}] Impossible Process:\n" "There is no node able to be processed.".format(context)) - def submit(self, graph=None, submitter=None, toNodes=None): + def submit(self, graph, submitter=None, toNodes=None): """ Nodes are send to the renderfarm :param graph: @@ -395,6 +395,7 @@ def submit(self, graph=None, submitter=None, toNodes=None): # Update task manager's lists self.updateNodes() + graph.update() # Check dependencies of toNodes if not toNodes: @@ -440,8 +441,7 @@ def submitFromFile(self, graphFile, submitter, toNode=None): Submit the given graph via the given submitter. """ graph = meshroom.core.graph.loadGraph(graphFile) - toNodes = graph.findNodes([toNode]) if toNode else None - self.submit(graph, submitter, toNodes) + self.submit(graph, submitter, toNode) def getAlreadySubmittedChunks(self, nodes): """ @@ -458,4 +458,4 @@ def getAlreadySubmittedChunks(self, nodes): return out nodes = Property(BaseObject, lambda self: self._nodes, constant=True) - restartRequested = Signal() \ No newline at end of file + restartRequested = Signal() diff --git a/meshroom/nodes/aliceVision/CameraInit.py b/meshroom/nodes/aliceVision/CameraInit.py index 9663bf1b23..a5fcb8fc81 100644 --- a/meshroom/nodes/aliceVision/CameraInit.py +++ b/meshroom/nodes/aliceVision/CameraInit.py @@ -344,7 +344,7 @@ def createViewpointsFile(self, node, additionalViews=()): "featureFolder": "", "matchingFolder": "", } - node.viewpointsFile = (node.nodeDesc.internalFolder + '/viewpoints.sfm').format(**node._cmdVars) + node.viewpointsFile = os.path.join(node.nodeDesc.internalFolder, 'viewpoints.sfm').format(**node._cmdVars) with open(node.viewpointsFile, 'w') as f: json.dump(sfmData, f, indent=4) diff --git a/meshroom/ui/qml/ImageGallery/ImageGallery.qml b/meshroom/ui/qml/ImageGallery/ImageGallery.qml index cedbd8230e..5041f32c77 100644 --- a/meshroom/ui/qml/ImageGallery/ImageGallery.qml +++ b/meshroom/ui/qml/ImageGallery/ImageGallery.qml @@ -199,11 +199,6 @@ Panel { sortedModel.filterValue = value grid.updateCurrentIndexFromSelectionViewId() grid.updateSelectedViewFromGrid = true - } - onFilterRoleChanged: { - grid.makeCurrentItemVisible() - } - onFilterValueChanged: { grid.makeCurrentItemVisible() }