+2
-3
src/App.tsx
+2
-3
src/App.tsx
···
100
100
}
101
101
102
102
if(clickedNode){
103
-
contextMenu.items = NodeContextMenu(clickedNode);
103
+
contextMenu.items = NodeContextMenu(clickedNode, selectedNode, setSelectedNode);
104
104
} else{
105
105
contextMenu.items = CanvasContextMenu;
106
106
}
···
321
321
isMouseDown = false;
322
322
}
323
323
324
-
keybinds.load(selectedNode);
325
-
324
+
keybinds.load(selectedNode, setSelectedNode);
326
325
requestAnimationFrame(update);
327
326
});
328
327
+5
-2
src/ContextMenu/Node.tsx
+5
-2
src/ContextMenu/Node.tsx
···
1
+
import { Accessor, Setter } from "solid-js";
1
2
import { NodeManager } from "../Mangers/NodeManager";
2
3
import { PositionInfo } from "../renderer";
3
4
import { Node } from "../structs/node";
4
5
5
-
export let NodeContextMenu = ( clickedNode: Node ) => [
6
+
export let NodeContextMenu = ( clickedNode: Node, selectedNode: Accessor<Node | null>, setSelectedNode: Setter<Node | null> ) => [
6
7
{
7
8
text: "Delete Node",
8
9
clicked: ( _e: MouseEvent, _canvas: HTMLCanvasElement, _position: PositionInfo ) => {
···
18
19
})
19
20
})
20
21
21
-
// TODO: If node is currently selected, deselect it.
22
+
let selected = selectedNode();
23
+
if(selected && clickedNode.id === selected.id)setSelectedNode(null);
24
+
22
25
NodeManager.Instance.RemoveNode(clickedNode!)
23
26
},
24
27
hovered: false
-3
src/Mangers/NodeManager.tsx
-3
src/Mangers/NodeManager.tsx
···
25
25
26
26
setInterval(() => {
27
27
let tabs = Object.values(this._tabs).filter(x => x.needSync);
28
-
console.log('Syncing ' + tabs.length + ' tabs');
29
28
for(let tab of tabs){
30
29
invoke('sync_tab', { graph: this._generateTabGraph(tab.id)[0], id: tab.id, name: tab.name, location: tab.saveLocation });
31
30
tab.needSync = false;
···
40
39
let version = await getVersion();
41
40
42
41
for(let tab of Object.entries<any>(tabs)){
43
-
console.log(tab);
44
-
45
42
await this._loadFromConfig(tab[1][2], tab[0], JSON.stringify({
46
43
tab_name: tab[1][1],
47
44
version,
+1
-1
src/Nodes/Statics/Float.tsx
+1
-1
src/Nodes/Statics/Float.tsx
+1
-1
src/Nodes/Statics/Int.tsx
+1
-1
src/Nodes/Statics/Int.tsx
+1
-1
src/Nodes/Statics/String.tsx
+1
-1
src/Nodes/Statics/String.tsx
+3
-4
src/keybinds.ts
+3
-4
src/keybinds.ts
···
1
-
import { Accessor } from "solid-js";
1
+
import { Accessor, Setter } from "solid-js";
2
2
import { NodeManager } from "./Mangers/NodeManager";
3
3
import { Node } from "./structs/node";
4
4
5
5
let isKeyDown: any = {};
6
6
7
-
export let load = ( selectedNode: Accessor<Node | null> ) => {
7
+
export let load = ( selectedNode: Accessor<Node | null>, setSelectedNode: Setter<Node | null> ) => {
8
8
// TODO: Keybind system
9
-
// TODO: Delete selected node when delete key is pressed
10
9
// TODO: Copy / paste
11
10
// TODO: Add undo / redo -ing
12
11
···
32
31
})
33
32
})
34
33
35
-
// TODO: If node is currently selected, deselect it.
34
+
setSelectedNode(null);
36
35
NodeManager.Instance.RemoveNode(node);
37
36
break;
38
37
case 's':