mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-07-19 17:47:25 +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
|
@ -251,21 +251,7 @@ Item {
|
|||
point2x: dst.nodeItem.x + dstAnchor.x
|
||||
point2y: dst.nodeItem.y + dstAnchor.y
|
||||
onPressed: {
|
||||
var canEdit = true
|
||||
if(_reconstruction.computing) {
|
||||
if(uigraph.taskManager.nodes.contains(edge.src.node)) {
|
||||
canEdit = false;
|
||||
} else {
|
||||
if(object.globalStatus == "SUCCESS") {
|
||||
var nodes = uigraph.graph.onlyNodesFromNode(edge.src.node);
|
||||
for(var i = 0; i < nodes.length; i++) {
|
||||
if(["SUBMITTED", "RUNNING"].includes(nodes[i].globalStatus) && nodes[i].chunks.at(0).statusNodeName == nodes[i].name) {
|
||||
canEdit = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const canEdit = !edge.src.node.locked
|
||||
|
||||
if(canEdit && event.button == Qt.RightButton)
|
||||
{
|
||||
|
@ -325,27 +311,7 @@ Item {
|
|||
}
|
||||
MenuItem {
|
||||
text: "Remove Node" + (removeFollowingButton.hovered ? "s From Here" : "")
|
||||
enabled: {
|
||||
if(! _reconstruction.computing) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if(uigraph.taskManager.nodes.contains(uigraph.selectedNode)) {
|
||||
return false;
|
||||
} else {
|
||||
if(uigraph.selectedNode.globalStatus == "SUCCESS") {
|
||||
var nodes = uigraph.graph.onlyNodesFromNode(uigraph.selectedNode);
|
||||
for(var i = 0; i < nodes.length; i++) {
|
||||
if(["SUBMITTED", "RUNNING"].includes(nodes[i].globalStatus) && nodes[i].chunks.at(0).statusNodeName == nodes[i].name) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
enabled: nodeMenu.currentNode ? !nodeMenu.currentNode.locked : false
|
||||
onTriggered: uigraph.removeNode(nodeMenu.currentNode)
|
||||
MaterialToolButton {
|
||||
id: removeFollowingButton
|
||||
|
@ -361,26 +327,7 @@ Item {
|
|||
MenuSeparator {}
|
||||
MenuItem {
|
||||
text: "Delete Data" + (deleteFollowingButton.hovered ? " From Here" : "" ) + "..."
|
||||
enabled: {
|
||||
if(! _reconstruction.computing) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if(uigraph.taskManager.nodes.contains(uigraph.selectedNode) || ["SUBMITTED", "RUNNING"].includes(_reconstruction.selectedNode.globalStatus)) {
|
||||
return false;
|
||||
} else {
|
||||
if(uigraph.selectedNode.globalStatus == "SUCCESS") {
|
||||
var nodes = uigraph.graph.onlyNodesFromNode(uigraph.selectedNode);
|
||||
for(var i = 0; i < nodes.length; i++) {
|
||||
if(["SUBMITTED", "RUNNING"].includes(nodes[i].globalStatus) && nodes[i].chunks.at(0).statusNodeName == nodes[i].name) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
enabled: nodeMenu.currentNode ? !nodeMenu.currentNode.locked : false
|
||||
|
||||
function showConfirmationDialog(deleteFollowing) {
|
||||
var obj = deleteDataDialog.createObject(root,
|
||||
|
@ -443,26 +390,7 @@ Item {
|
|||
|
||||
node: object
|
||||
width: uigraph.layout.nodeWidth
|
||||
readOnly: {
|
||||
if(! uigraph.computing) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(object.globalStatus == "SUCCESS") {
|
||||
var nodes = uigraph.graph.onlyNodesFromNode(object);
|
||||
for(var i = 0; i < nodes.length; i++) {
|
||||
if(["SUBMITTED", "RUNNING"].includes(nodes[i].globalStatus) && nodes[i].chunks.at(0).statusNodeName == nodes[i].name) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if(["SUBMITTED", "RUNNING"].includes(object.globalStatus)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
selected: uigraph.selectedNode === node
|
||||
hovered: uigraph.hoveredNode === node
|
||||
onSelectedChanged: if(selected) forceActiveFocus()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue