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

Merge pull request #98584 from Nazarwadim/emit_only_one_signal

Emit `filesystem_changed` only once per frame
This commit is contained in:
Clay John
2024-10-30 14:47:15 -07:00
committed by GitHub
2 changed files with 11 additions and 1 deletions

View File

@@ -2376,8 +2376,16 @@ void EditorFileSystem::update_files(const Vector<String> &p_script_paths) {
if (!is_scanning()) { if (!is_scanning()) {
_process_update_pending(); _process_update_pending();
} }
call_deferred(SNAME("emit_signal"), "filesystem_changed"); // Update later if (!filesystem_changed_queued) {
filesystem_changed_queued = true;
callable_mp(this, &EditorFileSystem::_notify_filesystem_changed).call_deferred();
} }
}
}
void EditorFileSystem::_notify_filesystem_changed() {
emit_signal("filesystem_changed");
filesystem_changed_queued = false;
} }
HashSet<String> EditorFileSystem::get_valid_extensions() const { HashSet<String> EditorFileSystem::get_valid_extensions() const {

View File

@@ -180,6 +180,7 @@ class EditorFileSystem : public Node {
EditorFileSystemDirectory *new_filesystem = nullptr; EditorFileSystemDirectory *new_filesystem = nullptr;
ScannedDirectory *first_scan_root_dir = nullptr; ScannedDirectory *first_scan_root_dir = nullptr;
bool filesystem_changed_queued = false;
bool scanning = false; bool scanning = false;
bool importing = false; bool importing = false;
bool first_scan = true; bool first_scan = true;
@@ -189,6 +190,7 @@ class EditorFileSystem : public Node {
bool revalidate_import_files = false; bool revalidate_import_files = false;
int nb_files_total = 0; int nb_files_total = 0;
void _notify_filesystem_changed();
void _scan_filesystem(); void _scan_filesystem();
void _first_scan_filesystem(); void _first_scan_filesystem();
void _first_scan_process_scripts(const ScannedDirectory *p_scan_dir, List<String> &p_gdextension_extensions, HashSet<String> &p_existing_class_names, HashSet<String> &p_extensions); void _first_scan_process_scripts(const ScannedDirectory *p_scan_dir, List<String> &p_gdextension_extensions, HashSet<String> &p_existing_class_names, HashSet<String> &p_extensions);