diff options
| author | William Tumeo | 2017-03-29 18:36:58 -0300 |
|---|---|---|
| committer | William Tumeo | 2017-03-29 18:36:58 -0300 |
| commit | d90809151fb25d98ef9b1f5f95fc7575084e3218 (patch) | |
| tree | 7ef1aebfaf232bc8ecf58d0244bd8847cc64e264 /editor/scene_tree_dock.cpp | |
| parent | 1307ff7eb16ecef8683ad8ebda8bfb0338e5204c (diff) | |
| download | godot-d90809151fb25d98ef9b1f5f95fc7575084e3218.tar.gz godot-d90809151fb25d98ef9b1f5f95fc7575084e3218.tar.zst godot-d90809151fb25d98ef9b1f5f95fc7575084e3218.zip | |
Re-add attach button and context menu from 1880238c3e54f57a14361d2c347387edebc6391b
Diffstat (limited to 'editor/scene_tree_dock.cpp')
| -rw-r--r-- | editor/scene_tree_dock.cpp | 71 |
1 files changed, 9 insertions, 62 deletions
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 905f82cc3..03c05c9c1 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -57,10 +57,8 @@ void SceneTreeDock::_unhandled_key_input(InputEvent p_event) { _tool_selected(TOOL_REPLACE); } else if (ED_IS_SHORTCUT("scene_tree/duplicate", p_event)) { _tool_selected(TOOL_DUPLICATE); - } else if (ED_IS_SHORTCUT("scene_tree/add_script", p_event)) { - _tool_selected(TOOL_CREATE_SCRIPT); - } else if (ED_IS_SHORTCUT("scene_tree/load_script", p_event)) { - _tool_selected(TOOL_LOAD_SCRIPT); + } else if (ED_IS_SHORTCUT("scene_tree/attach_script", p_event)) { + _tool_selected(TOOL_ATTACH_SCRIPT); } else if(ED_IS_SHORTCUT("scene_tree/clear_script", p_event)) { _tool_selected(TOOL_CLEAR_SCRIPT); } else if (ED_IS_SHORTCUT("scene_tree/move_up", p_event)) { @@ -232,23 +230,6 @@ void SceneTreeDock::_replace_with_branch_scene(const String &p_file, Node *base) scene_tree->set_selected(instanced_scene); } -void SceneTreeDock::_file_selected(String p_file) { - RES p_script = ResourceLoader::load(p_file, "Script"); - if (p_script.is_null()) { - accept->get_ok()->set_text(TTR("Ugh")); - accept->set_text(vformat(TTR("Error loading script from %s"), p_file)); - accept->popup_centered_minsize(); - return; - } - - Node *selected = scene_tree->get_selected(); - if (!selected) - return; - selected->set_script(p_script.get_ref_ptr()); - editor->push_item(p_script.operator->()); - file_dialog->hide(); -} - bool SceneTreeDock::_cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node) { int childCount = p_desired_node->get_child_count(); @@ -349,22 +330,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { //groups_editor->set_current(current); //groups_editor->popup_centered_ratio(); } break; - case TOOL_LOAD_SCRIPT: { - Node *selected = scene_tree->get_selected(); - if (!selected) - break; - - file_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE); - - List<String> extensions; - ResourceLoader::get_recognized_extensions_for_type("Script", &extensions); - file_dialog->clear_filters(); - for (List<String>::Element *E = extensions.front(); E; E = E->next()) - file_dialog->add_filter("*." + E->get() + " ; " + E->get().to_upper()); - - file_dialog->popup_centered_ratio(); - } break; - case TOOL_CREATE_SCRIPT: { + case TOOL_ATTACH_SCRIPT: { Node *selected = scene_tree->get_selected(); if (!selected) @@ -724,7 +690,6 @@ void SceneTreeDock::_notification(int p_what) { button_add->set_icon(get_icon("Add", "EditorIcons")); button_instance->set_icon(get_icon("Instance", "EditorIcons")); button_create_script->set_icon(get_icon("ScriptCreate","EditorIcons")); - button_load_script->set_icon(get_icon("Script", "EditorIcons")); button_clear_script->set_icon(get_icon("Remove", "EditorIcons")); filter_icon->set_texture(get_icon("Zoom", "EditorIcons")); @@ -1299,17 +1264,14 @@ void SceneTreeDock::_selection_changed() { if (selection_size==1) { if(EditorNode::get_singleton()->get_editor_selection()->get_selection().front()->key()->get_script().is_null()) { button_create_script->show(); - button_load_script->show(); button_clear_script->hide(); } else { button_create_script->hide(); - button_load_script->hide(); button_clear_script->show(); } } else { button_create_script->hide(); - button_load_script->hide(); button_clear_script->hide(); } @@ -1732,8 +1694,7 @@ void SceneTreeDock::_tree_rmb(const Vector2 &p_menu_pos) { //menu->add_icon_item(get_icon("Groups","EditorIcons"),TTR("Edit Groups"),TOOL_GROUP); //menu->add_icon_item(get_icon("Connect","EditorIcons"),TTR("Edit Connections"),TOOL_CONNECT); menu->add_separator(); - menu->add_icon_shortcut(get_icon("ScriptCreate", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/add_script"), TOOL_CREATE_SCRIPT); - menu->add_icon_shortcut(get_icon("Script", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/load_script"), TOOL_LOAD_SCRIPT); + menu->add_icon_shortcut(get_icon("ScriptCreate", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/attach_script"), TOOL_ATTACH_SCRIPT); menu->add_icon_shortcut(get_icon("Remove", "EditorIcons"), ED_GET_SHORTCUT("scene_tree/clear_script"), TOOL_CLEAR_SCRIPT); menu->add_separator(); } @@ -1776,7 +1737,7 @@ void SceneTreeDock::set_filter(const String &p_filter) { void SceneTreeDock::open_script_dialog(Node* p_for_node) { scene_tree->set_selected(p_for_node,false); - _tool_selected(TOOL_CREATE_SCRIPT); + _tool_selected(TOOL_ATTACH_SCRIPT); } void SceneTreeDock::_bind_methods() { @@ -1802,7 +1763,6 @@ void SceneTreeDock::_bind_methods() { ObjectTypeDB::bind_method(_MD("_script_dropped"), &SceneTreeDock::_script_dropped); ObjectTypeDB::bind_method(_MD("_tree_rmb"), &SceneTreeDock::_tree_rmb); ObjectTypeDB::bind_method(_MD("_filter_changed"), &SceneTreeDock::_filter_changed); - ObjectTypeDB::bind_method(_MD("_file_selected"), &SceneTreeDock::_file_selected); ObjectTypeDB::bind_method(_MD("instance"), &SceneTreeDock::instance); } @@ -1823,8 +1783,7 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel ED_SHORTCUT("scene_tree/add_child_node", TTR("Add Child Node"), KEY_MASK_CMD | KEY_A); ED_SHORTCUT("scene_tree/instance_scene", TTR("Instance Child Scene")); ED_SHORTCUT("scene_tree/change_node_type", TTR("Change Type")); - ED_SHORTCUT("scene_tree/add_script", TTR("Add Script")); - ED_SHORTCUT("scene_tree/load_script", TTR("Load Script")); + ED_SHORTCUT("scene_tree/attach_script", TTR("Attach Script")); ED_SHORTCUT("scene_tree/clear_script", TTR("Clear Script")); ED_SHORTCUT("scene_tree/move_up", TTR("Move Up"), KEY_MASK_CMD | KEY_UP); ED_SHORTCUT("scene_tree/move_down", TTR("Move Down"), KEY_MASK_CMD | KEY_DOWN); @@ -1860,20 +1819,13 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel filter->connect("text_changed", this, "_filter_changed"); tb = memnew(ToolButton); - tb->connect("pressed", this, "_tool_selected", make_binds(TOOL_CREATE_SCRIPT, false)); - tb->set_tooltip(TTR("Create a new script for the selected node.")); - tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/add_script")); + tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_ATTACH_SCRIPT, false)); + tb->set_tooltip(TTR("Attach a new or existing script for the selected node.")); + tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/attach_script")); filter_hbc->add_child(tb); button_create_script=tb; tb = memnew(ToolButton); - tb->connect("pressed", this, "_tool_selected", make_binds(TOOL_LOAD_SCRIPT, false)); - tb->set_tooltip(TTR("Load a script for the selected node.")); - tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/load_script")); - filter_hbc->add_child(tb); - button_load_script = tb; - - tb = memnew(ToolButton); tb->connect("pressed", this, "_tool_selected", make_binds(TOOL_CLEAR_SCRIPT, false)); tb->set_tooltip(TTR("Clear a script for the selected node.")); tb->set_shortcut(ED_GET_SHORTCUT("scene_tree/clear_script")); @@ -1902,11 +1854,6 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel add_child(create_dialog); create_dialog->connect("create", this, "_create"); - file_dialog = memnew(EditorFileDialog); - add_child(file_dialog); - file_dialog->hide(); - file_dialog->connect("file_selected", this, "_file_selected"); - //groups_editor = memnew( GroupsEditor ); //add_child(groups_editor); //groups_editor->set_undo_redo(&editor_data->get_undo_redo()); |
