1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-05 12:10:55 +00:00

Update script modified times when saved in EditorNode

(cherry picked from commit dade8bd66f)
This commit is contained in:
kobewi
2025-03-06 14:47:33 +01:00
committed by Rémi Verschelde
parent 10b2b76347
commit 14992b1341
3 changed files with 19 additions and 0 deletions

View File

@@ -1867,6 +1867,7 @@ int EditorNode::_save_external_resources(bool p_also_save_external_data) {
res->set_edited(false);
}
bool script_was_saved = false;
for (const String &E : edited_resources) {
Ref<Resource> res = ResourceCache::get_ref(E);
if (res.is_null()) {
@@ -1876,10 +1877,18 @@ int EditorNode::_save_external_resources(bool p_also_save_external_data) {
if (ps.is_valid()) {
continue; // Do not save PackedScenes, this will mess up the editor.
}
if (!script_was_saved) {
Ref<Script> scr = res;
script_was_saved = scr.is_valid();
}
ResourceSaver::save(res, res->get_path(), flg);
saved++;
}
if (script_was_saved) {
ScriptEditor::get_singleton()->update_script_times();
}
if (p_also_save_external_data) {
for (int i = 0; i < editor_data.get_editor_plugin_count(); i++) {
EditorPlugin *plugin = editor_data.get_editor_plugin(i);

View File

@@ -2817,6 +2817,15 @@ void ScriptEditor::save_all_scripts() {
_update_script_names();
}
void ScriptEditor::update_script_times() {
for (int i = 0; i < tab_container->get_tab_count(); i++) {
ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i));
if (se) {
se->edited_file_data.last_modified_time = FileAccess::get_modified_time(se->edited_file_data.path);
}
}
}
void ScriptEditor::apply_scripts() const {
for (int i = 0; i < tab_container->get_tab_count(); i++) {
ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(tab_container->get_tab_control(i));

View File

@@ -569,6 +569,7 @@ public:
PackedStringArray get_unsaved_scripts() const;
void save_current_script();
void save_all_scripts();
void update_script_times();
void set_window_layout(Ref<ConfigFile> p_layout);
void get_window_layout(Ref<ConfigFile> p_layout);