[ui] GraphEditor: add "Delete From Here" in node contextual menu

* ease the deletion of a branch from a given starting point
* accessible with alt+del on a node
* re-order menu to put the most destructive operation (Clear Data) at the very end
This commit is contained in:
Yann Lanthony 2019-01-02 18:44:11 +01:00
parent b50f9fb44d
commit d10c779914
2 changed files with 32 additions and 7 deletions

View file

@ -2,6 +2,7 @@ import QtQuick 2.7
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.3
import Controls 1.0
import Utils 1.0
import MaterialIcons 2.2
/**
@ -274,7 +275,7 @@ Item {
}
MenuSeparator {}
MenuItem {
text: "Duplicate"
text: "Duplicate Node"
onTriggered: duplicateNode(nodeMenu.currentNode, false)
}
MenuItem {
@ -282,16 +283,23 @@ Item {
onTriggered: duplicateNode(nodeMenu.currentNode, true)
}
MenuSeparator {}
MenuItem {
text: "Clear Data"
enabled: !root.readOnly
onTriggered: nodeMenu.currentNode.clearData()
}
MenuItem {
text: "Delete Node"
enabled: !root.readOnly
onTriggered: uigraph.removeNode(nodeMenu.currentNode)
}
MenuItem {
text: "Delete From Here"
enabled: !root.readOnly
onTriggered: uigraph.removeNodesFrom(nodeMenu.currentNode)
}
MenuSeparator {}
MenuItem {
text: "Clear Data"
palette.text: Colors.red
enabled: !root.readOnly
onTriggered: nodeMenu.currentNode.clearData()
}
}
// Nodes
@ -337,7 +345,12 @@ Item {
onEntered: uigraph.hoveredNode = node
onExited: uigraph.hoveredNode = null
Keys.onDeletePressed: uigraph.removeNode(node)
Keys.onDeletePressed: {
if(event.modifiers == Qt.AltModifier)
uigraph.removeNodesFrom(node)
else
uigraph.removeNode(node)
}
Behavior on x {
enabled: animatePosition