View resource signals in the Connections Dock

This commit is contained in:
GabCoolDude
2025-07-28 08:54:35 +02:00
parent 4a1c1c483b
commit cdcb2fc389
6 changed files with 79 additions and 56 deletions

View File

@@ -87,17 +87,24 @@ void NodeDock::update_lists() {
connections->update_tree();
}
void NodeDock::set_node(Node *p_node) {
connections->set_node(p_node);
groups->set_current(p_node);
void NodeDock::set_object(Object *p_object) {
connections->set_object(p_object);
groups->set_current(Object::cast_to<Node>(p_object));
if (p_node) {
if (p_object) {
if (connections_button->is_pressed()) {
connections->show();
} else {
groups->show();
}
if (Object::cast_to<Resource>(p_object)) {
show_connections();
groups_button->set_disabled(true);
} else {
groups_button->set_disabled(false);
}
mode_hb->show();
select_a_node->hide();
} else {
@@ -148,7 +155,7 @@ NodeDock::NodeDock() {
select_a_node = memnew(Label);
select_a_node->set_focus_mode(FOCUS_ACCESSIBILITY);
select_a_node->set_text(TTRC("Select a single node to edit its signals and groups."));
select_a_node->set_text(TTRC("Select a single node to edit its signals and groups, or select an independent resource to view its signals."));
select_a_node->set_custom_minimum_size(Size2(100 * EDSCALE, 0));
select_a_node->set_v_size_flags(SIZE_EXPAND_FILL);
select_a_node->set_vertical_alignment(VERTICAL_ALIGNMENT_CENTER);

View File

@@ -62,7 +62,7 @@ protected:
static void _bind_methods();
public:
void set_node(Node *p_node);
void set_object(Object *p_object);
void show_groups();
void show_connections();

View File

@@ -1359,7 +1359,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
undo_redo->add_undo_method(node, "set_scene_file_path", node->get_scene_file_path());
_node_replace_owner(node, node, root);
_node_strip_signal_inheritance(node);
NodeDock::get_singleton()->set_node(node); // Refresh.
NodeDock::get_singleton()->set_object(node); // Refresh.
undo_redo->add_do_method(scene_tree, "update_tree");
undo_redo->add_undo_method(scene_tree, "update_tree");
undo_redo->commit_action();
@@ -2859,7 +2859,7 @@ void SceneTreeDock::_delete_confirm(bool p_cut) {
editor_history->cleanup_history();
InspectorDock::get_singleton()->call("_prepare_history");
InspectorDock::get_singleton()->update(nullptr);
NodeDock::get_singleton()->set_node(nullptr);
NodeDock::get_singleton()->set_object(nullptr);
}
void SceneTreeDock::_update_script_button() {