summaryrefslogtreecommitdiff
path: root/editor/editor_file_system.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/editor_file_system.cpp')
-rw-r--r--editor/editor_file_system.cpp48
1 files changed, 15 insertions, 33 deletions
diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp
index 3fb2923696..2612a2af16 100644
--- a/editor/editor_file_system.cpp
+++ b/editor/editor_file_system.cpp
@@ -487,22 +487,6 @@ bool EditorFileSystem::_check_missing_imported_files(const String &p_path) {
return true;
}
-static bool _find_project(const String &p_path) {
- DirAccess *dir_access = DirAccess::create_for_path(p_path);
- bool ret = false;
- while (true) {
- bool is_dir;
- String file = dir_access->get_next(&is_dir);
- if (file == "")
- break;
- if (file.ends_with(".godot")) {
- ret = true;
- }
- }
- memdelete(dir_access);
- return ret;
-}
-
void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir, DirAccess *da, const ScanProgress &p_progress) {
List<String> dirs;
@@ -525,9 +509,8 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir, DirAccess
if (f.begins_with(".")) //ignore hidden and . / ..
continue;
- if (_find_project(cd.plus_file(f))) {
+ if (FileAccess::exists(cd.plus_file(f).plus_file("godot.cfg"))) // skip if another project inside this
continue;
- }
dirs.push_back(f);
@@ -693,35 +676,34 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const
while (true) {
bool isdir;
- String file = da->get_next(&isdir);
- if (file == "")
+ String f = da->get_next(&isdir);
+ if (f == "")
break;
if (isdir) {
- if (file.begins_with(".")) //ignore hidden and . / ..
+ if (f.begins_with(".")) //ignore hidden and . / ..
continue;
- int idx = p_dir->find_dir_index(file);
+ int idx = p_dir->find_dir_index(f);
if (idx == -1) {
- if (_find_project(cd.plus_file(file))) {
+ if (FileAccess::exists(cd.plus_file(f).plus_file("godot.cfg"))) // skip if another project inside this
continue;
- }
EditorFileSystemDirectory *efd = memnew(EditorFileSystemDirectory);
efd->parent = p_dir;
- efd->name = file;
+ efd->name = f;
DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
- d->change_dir(cd.plus_file(file));
+ d->change_dir(cd.plus_file(f));
_scan_new_dir(efd, d, p_progress.get_sub(1, 1));
memdelete(d);
ItemAction ia;
ia.action = ItemAction::ACTION_DIR_ADD;
ia.dir = p_dir;
- ia.file = file;
+ ia.file = f;
ia.new_dir = efd;
scan_actions.push_back(ia);
} else {
@@ -729,16 +711,16 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const
}
} else {
- String ext = file.get_extension().to_lower();
+ String ext = f.get_extension().to_lower();
if (!valid_extensions.has(ext))
continue; //invalid
- int idx = p_dir->find_file_index(file);
+ int idx = p_dir->find_file_index(f);
if (idx == -1) {
//never seen this file, add actition to add it
EditorFileSystemDirectory::FileInfo *fi = memnew(EditorFileSystemDirectory::FileInfo);
- fi->file = file;
+ fi->file = f;
String path = cd.plus_file(fi->file);
fi->modified_time = FileAccess::get_modified_time(path);
@@ -749,7 +731,7 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const
ItemAction ia;
ia.action = ItemAction::ACTION_FILE_ADD;
ia.dir = p_dir;
- ia.file = file;
+ ia.file = f;
ia.new_file = fi;
scan_actions.push_back(ia);
}
@@ -757,14 +739,14 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const
if (import_extensions.has(ext)) {
//if it can be imported, and it was added, it needs to be reimported
print_line("REIMPORT: file was not found before, reimport");
- print_line("at dir: " + p_dir->get_path() + " file: " + file);
+ print_line("at dir: " + p_dir->get_path() + " file: " + f);
for (int i = 0; i < p_dir->files.size(); i++) {
print_line(itos(i) + ": " + p_dir->files[i]->file);
}
ItemAction ia;
ia.action = ItemAction::ACTION_FILE_REIMPORT;
ia.dir = p_dir;
- ia.file = file;
+ ia.file = f;
scan_actions.push_back(ia);
}