Add ScriptEditor::get_unsaved_files

This commit is contained in:
nikitalita 2026-03-18 09:25:26 -07:00
parent 33b487690e
commit 6bf7ca2dbb
3 changed files with 21 additions and 0 deletions

View file

@ -2382,6 +2382,18 @@ PackedStringArray ScriptEditor::get_unsaved_scripts() const {
return unsaved_list;
}
PackedStringArray ScriptEditor::get_unsaved_files() const {
PackedStringArray unsaved_list;
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->is_unsaved()) {
unsaved_list.append(seb->get_edited_resource()->get_path());
}
}
return unsaved_list;
}
void ScriptEditor::save_current_script() {
ScriptEditorBase *current = _get_current_editor();
if (!current || _test_script_times_on_disk()) {
@ -3775,6 +3787,8 @@ void ScriptEditor::_bind_methods() {
ClassDB::bind_method(D_METHOD("update_docs_from_script", "script"), &ScriptEditor::update_docs_from_script);
ClassDB::bind_method(D_METHOD("clear_docs_from_script", "script"), &ScriptEditor::clear_docs_from_script);
ClassDB::bind_method(D_METHOD("get_unsaved_files"), &ScriptEditor::get_unsaved_files);
ClassDB::bind_method(D_METHOD("save_all_scripts"), &ScriptEditor::save_all_scripts);
ADD_SIGNAL(MethodInfo("editor_script_changed", PropertyInfo(Variant::OBJECT, "script", PROPERTY_HINT_RESOURCE_TYPE, Script::get_class_static())));