summaryrefslogtreecommitdiff
path: root/editor/filesystem_dock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/filesystem_dock.cpp')
-rw-r--r--editor/filesystem_dock.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index 038cc2ab2f..ee7ed77957 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -224,6 +224,19 @@ void FileSystemDock::_update_tree(const Vector<String> &p_uncollapsed_paths, boo
favorites->set_collapsed(p_uncollapsed_paths.find("Favorites") < 0);
Vector<String> favorite_paths = EditorSettings::get_singleton()->get_favorites();
+
+ DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
+ bool fav_changed = false;
+ for (int i = favorite_paths.size() - 1; i >= 0; i--) {
+ if (!da->dir_exists(favorite_paths[i])) {
+ favorite_paths.remove_at(i);
+ fav_changed = true;
+ }
+ }
+ if (fav_changed) {
+ EditorSettings::get_singleton()->set_favorites(favorite_paths);
+ }
+
for (int i = 0; i < favorite_paths.size(); i++) {
String fave = favorite_paths[i];
if (!fave.begins_with("res://")) {
@@ -1413,6 +1426,12 @@ void FileSystemDock::_make_dir_confirm() {
if (!directory.ends_with("/")) {
directory = directory.get_base_dir();
}
+
+ if (EditorFileSystem::get_singleton()->get_filesystem_path(directory + dir_name)) {
+ EditorNode::get_singleton()->show_warning(TTR("Could not create folder. File with that name already exists."));
+ return;
+ }
+
print_verbose("Making folder " + dir_name + " in " + directory);
DirAccessRef da = DirAccess::create(DirAccess::ACCESS_RESOURCES);
Error err = da->change_dir(directory);