diff options
Diffstat (limited to 'editor')
-rw-r--r-- | editor/code_editor.cpp | 7 | ||||
-rw-r--r-- | editor/create_dialog.cpp | 49 | ||||
-rw-r--r-- | editor/editor_audio_buses.cpp | 13 | ||||
-rw-r--r-- | editor/editor_audio_buses.h | 1 | ||||
-rw-r--r-- | editor/import/resource_importer_texture.cpp | 7 | ||||
-rw-r--r-- | editor/import/resource_importer_texture.h | 1 | ||||
-rw-r--r-- | editor/plugins/skeleton_3d_editor_plugin.cpp | 1 | ||||
-rw-r--r-- | editor/project_manager.cpp | 4 |
8 files changed, 53 insertions, 30 deletions
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 1b2b0a26e6..95c7cc0bf1 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -307,18 +307,19 @@ void FindReplaceBar::_update_results_count() { break; } + int pos_subsequent = pos + searched.length(); if (is_whole_words()) { from_pos = pos + 1; // Making sure we won't hit the same match next time, if we get out via a continue. - if (pos > 0 && !is_symbol(full_text[pos - 1])) { + if (pos > 0 && !(is_symbol(full_text[pos - 1]) || full_text[pos - 1] == '\n')) { continue; } - if (pos + searched.length() < full_text.length() && !is_symbol(full_text[pos + searched.length()])) { + if (pos_subsequent < full_text.length() && !(is_symbol(full_text[pos_subsequent]) || full_text[pos_subsequent] == '\n')) { continue; } } results_count++; - from_pos = pos + searched.length(); + from_pos = pos_subsequent; } } diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index 4bd7371c21..73468f8ce0 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -513,30 +513,45 @@ String CreateDialog::get_selected_type() { Object *CreateDialog::instance_selected() { TreeItem *selected = search_options->get_selected(); - if (selected) { - Variant md = selected->get_metadata(0); + if (!selected) { + return nullptr; + } - String custom; - if (md.get_type() != Variant::NIL) { - custom = md; - } + Variant md = selected->get_metadata(0); + String custom; + if (md.get_type() != Variant::NIL) { + custom = md; + } - if (custom != String()) { - if (ScriptServer::is_global_class(custom)) { - Object *obj = EditorNode::get_editor_data().script_class_instance(custom); - Node *n = Object::cast_to<Node>(obj); - if (n) { - n->set_name(custom); - } - return obj; + Object *obj = nullptr; + + if (!custom.empty()) { + if (ScriptServer::is_global_class(custom)) { + obj = EditorNode::get_editor_data().script_class_instance(custom); + Node *n = Object::cast_to<Node>(obj); + if (n) { + n->set_name(custom); } - return EditorNode::get_editor_data().instance_custom_type(selected->get_text(0), custom); + obj = n; } else { - return ClassDB::instance(selected->get_text(0)); + obj = EditorNode::get_editor_data().instance_custom_type(selected->get_text(0), custom); + } + } else { + obj = ClassDB::instance(selected->get_text(0)); + } + + // Check if any Object-type property should be instantiated. + List<PropertyInfo> pinfo; + obj->get_property_list(&pinfo); + + for (List<PropertyInfo>::Element *E = pinfo.front(); E; E = E->next()) { + if (E->get().type == Variant::OBJECT && E->get().usage & PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT) { + Object *prop = ClassDB::instance(E->get().class_name); + obj->set(E->get().name, prop); } } - return nullptr; + return obj; } void CreateDialog::_item_selected() { diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index f8dec13a5c..5cf5201b18 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -545,6 +545,17 @@ void EditorAudioBus::_gui_input(const Ref<InputEvent> &p_event) { } } +void EditorAudioBus::_unhandled_key_input(Ref<InputEvent> p_event) { + Ref<InputEventKey> k = p_event; + if (k.is_valid() && k->is_pressed() && !k->is_echo() && k->get_keycode() == KEY_DELETE) { + TreeItem *current_effect = effects->get_selected(); + if (current_effect && current_effect->get_metadata(0).get_type() == Variant::INT) { + _delete_effect_pressed(0); + accept_event(); + } + } +} + void EditorAudioBus::_bus_popup_pressed(int p_option) { if (p_option == 2) { // Reset volume @@ -738,6 +749,7 @@ void EditorAudioBus::_bind_methods() { ClassDB::bind_method("update_bus", &EditorAudioBus::update_bus); ClassDB::bind_method("update_send", &EditorAudioBus::update_send); ClassDB::bind_method("_gui_input", &EditorAudioBus::_gui_input); + ClassDB::bind_method("_unhandled_key_input", &EditorAudioBus::_unhandled_key_input); ClassDB::bind_method("get_drag_data_fw", &EditorAudioBus::get_drag_data_fw); ClassDB::bind_method("can_drop_data_fw", &EditorAudioBus::can_drop_data_fw); ClassDB::bind_method("drop_data_fw", &EditorAudioBus::drop_data_fw); @@ -761,6 +773,7 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { add_child(vb); set_v_size_flags(SIZE_EXPAND_FILL); + set_process_unhandled_key_input(true); track_name = memnew(LineEdit); track_name->connect("text_entered", callable_mp(this, &EditorAudioBus::_name_changed)); diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h index 6b2d9e4436..65caf84f0f 100644 --- a/editor/editor_audio_buses.h +++ b/editor/editor_audio_buses.h @@ -92,6 +92,7 @@ class EditorAudioBus : public PanelContainer { mutable bool hovering_drop; void _gui_input(const Ref<InputEvent> &p_event); + void _unhandled_key_input(Ref<InputEvent> p_event); void _bus_popup_pressed(int p_option); void _name_changed(const String &p_new_name); diff --git a/editor/import/resource_importer_texture.cpp b/editor/import/resource_importer_texture.cpp index a13324f0fc..3a0e624a8f 100644 --- a/editor/import/resource_importer_texture.cpp +++ b/editor/import/resource_importer_texture.cpp @@ -181,15 +181,14 @@ bool ResourceImporterTexture::get_option_visibility(const String &p_option, cons } int ResourceImporterTexture::get_preset_count() const { - return 4; + return 3; } String ResourceImporterTexture::get_preset_name(int p_idx) const { static const char *preset_names[] = { - "2D, Detect 3D", + "2D/3D (Auto-Detect)", "2D", - "2D Pixel", - "3D" + "3D", }; return preset_names[p_idx]; diff --git a/editor/import/resource_importer_texture.h b/editor/import/resource_importer_texture.h index b770d240eb..12eb7f67c2 100644 --- a/editor/import/resource_importer_texture.h +++ b/editor/import/resource_importer_texture.h @@ -93,7 +93,6 @@ public: enum Preset { PRESET_DETECT, PRESET_2D, - PRESET_2D_PIXEL, PRESET_3D, }; diff --git a/editor/plugins/skeleton_3d_editor_plugin.cpp b/editor/plugins/skeleton_3d_editor_plugin.cpp index 321b4432ab..2586f17fe1 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.cpp +++ b/editor/plugins/skeleton_3d_editor_plugin.cpp @@ -665,7 +665,6 @@ void Skeleton3DEditor::create_editors() { options->get_popup()->add_item(TTR("Create physical skeleton"), MENU_OPTION_CREATE_PHYSICAL_SKELETON); options->get_popup()->connect("id_pressed", callable_mp(this, &Skeleton3DEditor::_on_click_option)); - options->hide(); const Color section_color = get_theme_color("prop_subsection", "Editor"); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 499f7d4017..cbba4b4834 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -1741,10 +1741,6 @@ void ProjectList::_panel_input(const Ref<InputEvent> &p_ev, Node *p_hb) { select_project(clicked_index); } - if (_selected_project_keys.has(clicked_project.project_key)) { - clicked_project.control->grab_focus(); - } - emit_signal(SIGNAL_SELECTION_CHANGED); if (!mb->get_control() && mb->is_doubleclick()) { |