diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-09-05 08:36:10 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-09-05 08:36:10 +0200 |
commit | b5c053321c89217b1cae0d4670d66a1af0c68bc8 (patch) | |
tree | fe227d4bc6d24e378f18dd636a56cc668abeecd7 /scene/gui/graph_node.cpp | |
parent | 1499840f75b8c0a655b3ca23ac127361934645b0 (diff) | |
parent | 9a35ede23f1139bd5b232311c5cfdfec436e6288 (diff) | |
download | redot-engine-b5c053321c89217b1cae0d4670d66a1af0c68bc8.tar.gz |
Merge pull request #64840 from maximkulkin/graph-edit-node-selection
Add GraphNode 'selected' and 'deselected' signals, simplify GraphEdit
Diffstat (limited to 'scene/gui/graph_node.cpp')
-rw-r--r-- | scene/gui/graph_node.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/scene/gui/graph_node.cpp b/scene/gui/graph_node.cpp index 5976d9fc37..f441144a8e 100644 --- a/scene/gui/graph_node.cpp +++ b/scene/gui/graph_node.cpp @@ -736,11 +736,12 @@ Vector2 GraphNode::get_position_offset() const { } void GraphNode::set_selected(bool p_selected) { - if (selected == p_selected) { + if (!is_selectable() || selected == p_selected) { return; } selected = p_selected; + emit_signal(p_selected ? SNAME("selected") : SNAME("deselected")); queue_redraw(); } @@ -1012,6 +1013,9 @@ bool GraphNode::is_draggable() { } void GraphNode::set_selectable(bool p_selectable) { + if (!p_selectable) { + set_selected(false); + } selectable = p_selectable; } @@ -1123,6 +1127,8 @@ void GraphNode::_bind_methods() { ADD_GROUP("", ""); ADD_SIGNAL(MethodInfo("position_offset_changed")); + ADD_SIGNAL(MethodInfo("selected")); + ADD_SIGNAL(MethodInfo("deselected")); ADD_SIGNAL(MethodInfo("slot_updated", PropertyInfo(Variant::INT, "idx"))); ADD_SIGNAL(MethodInfo("dragged", PropertyInfo(Variant::VECTOR2, "from"), PropertyInfo(Variant::VECTOR2, "to"))); ADD_SIGNAL(MethodInfo("raise_request")); |