diff --git a/editor/js/graph.js b/editor/js/graph.js index 665a9e59798d8c97b88e2bd25c68dabe49be7917..b8d432c7b38a6c27a2007a57cb85678cbf4bcd11 100644 --- a/editor/js/graph.js +++ b/editor/js/graph.js @@ -117,7 +117,7 @@ export class Graph extends ManagedData { var classIndex = this.nodeTypes.indexOf(typeClass); if (classIndex <= -1) { - return 'black'; + return "black"; } return COLOR_PALETTE[classIndex % COLOR_PALETTE.length]; @@ -139,6 +139,25 @@ export class Graph extends ManagedData { this.storeCurrentData("Deleted node with id [" + nodeId + "]"); } + deleteNodes(nodeIds) { + if (nodeIds === undefined || nodeIds.length <= 0) { + return; + } + + try { + this.disableStoring(); + + nodeIds.forEach((id) => { + this.deleteNode(id); + }); + } finally { + // Gotta make sure that storing is turned back on again + this.enableStoring(); + } + + this.storeCurrentData("Deleted nodes with ids [" + nodeIds.join(",") + "]"); + } + stopPhysics() { this.data[GRAPH_NODES].forEach((n) => { n.fx = n.x; diff --git a/editor/js/manageddata.js b/editor/js/manageddata.js index c35a2bb1b7890bb234404855f241d7f031a7aa14..d5c01d4cccde2600cc2e3d02a8c9d018f1b8046b 100644 --- a/editor/js/manageddata.js +++ b/editor/js/manageddata.js @@ -8,6 +8,7 @@ export default class ManagedData { this.history = []; // Newest state is always at 0 this.historyPosition = 0; this.savedHistoryId = 0; + this.storingEnabled = true; this.storeCurrentData("Initial state", false); } @@ -39,6 +40,14 @@ export default class ManagedData { this.updateUnsavedChangesHandler(); } + disableStoring() { + this.storingEnabled = false; + } + + enableStoring() { + this.storingEnabled = true; + } + onUndo() {} onRedo() {} @@ -83,6 +92,10 @@ export default class ManagedData { } storeCurrentData(description, relevantChanges = true) { + if (this.storingEnabled === false) { + return; + } + var formattedData = this.storableData(this.data); var nextId = 0;