Skip to content
Open
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions meshroom/ui/qml/GraphEditor/GraphEditor.qml
Original file line number Diff line number Diff line change
Expand Up @@ -1349,6 +1349,42 @@ Item {
ToolTip.text: "Auto-Layout"
onClicked: uigraph.layout.reset()
}
// Add Backdrop
MaterialToolButton {
text: MaterialIcons.sticky_note_2
ToolTip.text: "Add Backdrop"
onClicked: {
var selectedNodes = uigraph.getSelectedNodes()
var backdrop
if (selectedNodes.length > 0) {
// Calculate bounding box of selected nodes
var padding = uigraph.layout.gridSpacing
var minX = Number.MAX_VALUE
var minY = Number.MAX_VALUE
var maxX = -Number.MAX_VALUE
var maxY = -Number.MAX_VALUE
for (var i = 0; i < selectedNodes.length; i++) {
var n = selectedNodes[i]
var nw = n.nodeWidth > 0 ? n.nodeWidth : uigraph.layout.nodeWidth
var nh = n.nodeHeight > 0 ? n.nodeHeight : uigraph.layout.nodeHeight
minX = Math.min(minX, n.x)
minY = Math.min(minY, n.y)
maxX = Math.max(maxX, n.x + nw)
maxY = Math.max(maxY, n.y + nh)
}
var bboxX = minX - padding
var bboxY = minY - padding
var bboxW = Math.round(maxX - minX + 2 * padding)
var bboxH = Math.round(maxY - minY + 2 * padding)
backdrop = uigraph.addNewNode("Backdrop", Qt.point(bboxX, bboxY))
uigraph.resizeNode(backdrop, bboxW, bboxH)
} else {
backdrop = uigraph.addNewNode("Backdrop", getCenterPosition())
}
uigraph.selectedNode = backdrop
uigraph.selectNodes([backdrop])
}
}

// Separator
Rectangle {
Expand Down