Add ScriptEditor::close_file()
This commit is contained in:
@@ -2611,6 +2611,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();
|
||||
@@ -3776,6 +3790,7 @@ void ScriptEditor::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("clear_docs_from_script", "script"), &ScriptEditor::clear_docs_from_script);
|
||||
|
||||
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