Merge pull request #113772 from LilithSilver/add-close-file
Add `ScriptEditor::close_file()`
This commit is contained in:
@@ -2624,6 +2624,20 @@ Ref<Resource> ScriptEditor::open_file(const String &p_file) {
|
||||
return Ref<Resource>();
|
||||
}
|
||||
|
||||
Error ScriptEditor::close_file(const String &p_file) {
|
||||
for (int i = 0; i < tab_container->get_tab_count(); i++) {
|
||||
ScriptEditorBase *seb = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i));
|
||||
if (seb && seb->get_edited_resource()->get_path() == p_file) {
|
||||
if (seb->is_unsaved()) {
|
||||
seb->get_edited_resource()->reload_from_file();
|
||||
}
|
||||
_close_tab(i, false, _get_current_editor() == seb);
|
||||
return OK;
|
||||
}
|
||||
}
|
||||
return ERR_FILE_NOT_FOUND;
|
||||
}
|
||||
|
||||
void ScriptEditor::_add_callback(Object *p_obj, const String &p_function, const PackedStringArray &p_args) {
|
||||
ERR_FAIL_NULL(p_obj);
|
||||
Ref<Script> scr = p_obj->get_script();
|
||||
@@ -3791,6 +3805,7 @@ void ScriptEditor::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_unsaved_files"), &ScriptEditor::get_unsaved_files);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("save_all_scripts"), &ScriptEditor::save_all_scripts);
|
||||
ClassDB::bind_method(D_METHOD("close_file", "path"), &ScriptEditor::close_file);
|
||||
|
||||
ADD_SIGNAL(MethodInfo("editor_script_changed", PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, Script::get_class_static())));
|
||||
ADD_SIGNAL(MethodInfo("script_close", PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, Script::get_class_static())));
|
||||
|
||||
Reference in New Issue
Block a user