Reorganized connection dialog for much improved ease of use.
-Removed dest path field -Added a "Source" signal -Added an "Advanced" button to hide complexity -Fix bug on Tree to make sure "ensure visible" works on hidden trees -Fix bug on TextEdit to ensure signals created with script not open sill focus the right line
This commit is contained in:
@ -48,6 +48,9 @@ Node *SceneTreeEditor::get_scene_node() {
|
||||
|
||||
void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_id) {
|
||||
|
||||
if (connect_to_script_mode) {
|
||||
return; //dont do anything in this mode
|
||||
}
|
||||
TreeItem *item = Object::cast_to<TreeItem>(p_item);
|
||||
ERR_FAIL_COND(!item);
|
||||
|
||||
@ -190,7 +193,25 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) {
|
||||
item->set_icon(0, icon);
|
||||
item->set_metadata(0, p_node->get_path());
|
||||
|
||||
if (part_of_subscene) {
|
||||
if (connect_to_script_mode) {
|
||||
Color accent = get_color("accent_color", "Editor");
|
||||
|
||||
if (!p_node->get_script().is_null()) {
|
||||
//has script
|
||||
item->add_button(0, get_icon("Script", "EditorIcons"), BUTTON_SCRIPT);
|
||||
} else {
|
||||
//has no script
|
||||
item->set_custom_color(0, get_color("disabled_font_color", "Editor"));
|
||||
item->set_selectable(0, false);
|
||||
accent.a *= 0.7;
|
||||
}
|
||||
|
||||
if (marked.has(p_node)) {
|
||||
item->set_text(0, String(p_node->get_name()) + " " + TTR("(Connecting From)"));
|
||||
|
||||
item->set_custom_color(0, accent);
|
||||
}
|
||||
} else if (part_of_subscene) {
|
||||
|
||||
//item->set_selectable(0,marked_selectable);
|
||||
if (valid_types.size() == 0) {
|
||||
@ -199,7 +220,9 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) {
|
||||
|
||||
} else if (marked.has(p_node)) {
|
||||
|
||||
item->set_selectable(0, marked_selectable);
|
||||
if (!connect_to_script_mode) {
|
||||
item->set_selectable(0, marked_selectable);
|
||||
}
|
||||
item->set_custom_color(0, get_color("error_color", "Editor"));
|
||||
} else if (!marked_selectable && !marked_children_selectable) {
|
||||
|
||||
@ -620,6 +643,7 @@ void SceneTreeEditor::set_selected(Node *p_node, bool p_emit_selected) {
|
||||
item->set_as_cursor(0);
|
||||
selected = p_node;
|
||||
tree->ensure_cursor_is_visible();
|
||||
|
||||
} else {
|
||||
if (!p_node)
|
||||
selected = NULL;
|
||||
@ -974,6 +998,11 @@ void SceneTreeEditor::_warning_changed(Node *p_for_node) {
|
||||
update_timer->start();
|
||||
}
|
||||
|
||||
void SceneTreeEditor::set_connect_to_script_mode(bool p_enable) {
|
||||
connect_to_script_mode = p_enable;
|
||||
update_tree();
|
||||
}
|
||||
|
||||
void SceneTreeEditor::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method("_tree_changed", &SceneTreeEditor::_tree_changed);
|
||||
@ -1016,6 +1045,7 @@ void SceneTreeEditor::_bind_methods() {
|
||||
|
||||
SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_open_instance) {
|
||||
|
||||
connect_to_script_mode = false;
|
||||
undo_redo = NULL;
|
||||
tree_dirty = true;
|
||||
selected = NULL;
|
||||
|
||||
Reference in New Issue
Block a user