浏览代码

Merge pull request #39549 from KoBeWi/deletebuseffectinator

Delete bus effect with Delete key
Rémi Verschelde 5 年之前
父节点
当前提交
3d1b8ee56a
共有 2 个文件被更改,包括 14 次插入0 次删除
  1. 13 0
      editor/editor_audio_buses.cpp
  2. 1 0
      editor/editor_audio_buses.h

+ 13 - 0
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) {
 void EditorAudioBus::_bus_popup_pressed(int p_option) {
 	if (p_option == 2) {
 	if (p_option == 2) {
 		// Reset volume
 		// Reset volume
@@ -738,6 +749,7 @@ void EditorAudioBus::_bind_methods() {
 	ClassDB::bind_method("update_bus", &EditorAudioBus::update_bus);
 	ClassDB::bind_method("update_bus", &EditorAudioBus::update_bus);
 	ClassDB::bind_method("update_send", &EditorAudioBus::update_send);
 	ClassDB::bind_method("update_send", &EditorAudioBus::update_send);
 	ClassDB::bind_method("_gui_input", &EditorAudioBus::_gui_input);
 	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("get_drag_data_fw", &EditorAudioBus::get_drag_data_fw);
 	ClassDB::bind_method("can_drop_data_fw", &EditorAudioBus::can_drop_data_fw);
 	ClassDB::bind_method("can_drop_data_fw", &EditorAudioBus::can_drop_data_fw);
 	ClassDB::bind_method("drop_data_fw", &EditorAudioBus::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);
 	add_child(vb);
 
 
 	set_v_size_flags(SIZE_EXPAND_FILL);
 	set_v_size_flags(SIZE_EXPAND_FILL);
+	set_process_unhandled_key_input(true);
 
 
 	track_name = memnew(LineEdit);
 	track_name = memnew(LineEdit);
 	track_name->connect("text_entered", callable_mp(this, &EditorAudioBus::_name_changed));
 	track_name->connect("text_entered", callable_mp(this, &EditorAudioBus::_name_changed));

+ 1 - 0
editor/editor_audio_buses.h

@@ -92,6 +92,7 @@ class EditorAudioBus : public PanelContainer {
 	mutable bool hovering_drop;
 	mutable bool hovering_drop;
 
 
 	void _gui_input(const Ref<InputEvent> &p_event);
 	void _gui_input(const Ref<InputEvent> &p_event);
+	void _unhandled_key_input(Ref<InputEvent> p_event);
 	void _bus_popup_pressed(int p_option);
 	void _bus_popup_pressed(int p_option);
 
 
 	void _name_changed(const String &p_new_name);
 	void _name_changed(const String &p_new_name);