diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-06-11 14:17:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-11 14:17:49 +0200 |
commit | 96028e3f48bae400e9c160558c63dbb454e5cdd5 (patch) | |
tree | ee7a568f78690cce553ef3ff1112ee232a88da83 /editor/scene_tree_editor.cpp | |
parent | c499f1475f1c37c6d83985320a9e98a3d2711a2b (diff) | |
parent | 31218a07ded15d5243cddd6f7c90e72d521a63de (diff) | |
download | redot-engine-96028e3f48bae400e9c160558c63dbb454e5cdd5.tar.gz |
Merge pull request #29526 from YeldhamDev/connections_dialog_improvements_reborn
Improve conections dialog
Diffstat (limited to 'editor/scene_tree_editor.cpp')
-rw-r--r-- | editor/scene_tree_editor.cpp | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index 5ca3448693..e1b4320378 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -51,6 +51,7 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i if (connect_to_script_mode) { return; //don't do anything in this mode } + TreeItem *item = Object::cast_to<TreeItem>(p_item); ERR_FAIL_COND(!item); @@ -220,23 +221,27 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { } if (marked.has(p_node)) { - item->set_text(0, String(p_node->get_name()) + " " + TTR("(Connecting From)")); - + String node_name = p_node->get_name(); + if (connecting_signal) { + node_name += " " + TTR("(Connecting From)"); + } + item->set_text(0, node_name); item->set_custom_color(0, accent); } } else if (part_of_subscene) { - //item->set_selectable(0,marked_selectable); if (valid_types.size() == 0) { item->set_custom_color(0, get_color("disabled_font_color", "Editor")); } - } else if (marked.has(p_node)) { - if (!connect_to_script_mode) { - item->set_selectable(0, marked_selectable); + String node_name = p_node->get_name(); + if (connecting_signal) { + node_name += " " + TTR("(Connecting From)"); } - item->set_custom_color(0, get_color("error_color", "Editor")); + item->set_text(0, node_name); + item->set_selectable(0, marked_selectable); + item->set_custom_color(0, get_color("accent_color", "Editor")); } else if (!marked_selectable && !marked_children_selectable) { Node *node = p_node; @@ -1033,6 +1038,11 @@ void SceneTreeEditor::set_connect_to_script_mode(bool p_enable) { update_tree(); } +void SceneTreeEditor::set_connecting_signal(bool p_enable) { + connecting_signal = p_enable; + update_tree(); +} + void SceneTreeEditor::_bind_methods() { ClassDB::bind_method("_tree_changed", &SceneTreeEditor::_tree_changed); @@ -1077,6 +1087,7 @@ void SceneTreeEditor::_bind_methods() { SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_open_instance) { connect_to_script_mode = false; + connecting_signal = false; undo_redo = NULL; tree_dirty = true; selected = NULL; |