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
+6
View File
@@ -48,6 +48,12 @@
Returns an array with all [Script] objects which are currently open in editor.
</description>
</method>
<method name="get_unsaved_files" qualifiers="const">
<return type="PackedStringArray" />
<description>
Returns an array of file paths of scripts with unsaved changes open in the editor.
</description>
</method>
<method name="goto_help">
<return type="void" />
<param index="0" name="topic" type="String" />
+14
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())));
+1
View File
@@ -424,6 +424,7 @@ public:
void get_breakpoints(List<String> *p_breakpoints);
void reload_open_files();
PackedStringArray get_unsaved_files() const;
PackedStringArray get_unsaved_scripts() const;
void save_current_script();
void save_all_scripts();