Fix persistent favorites after rename

Signed-off-by: Daniel Kříž <Daniel.kriz@protonmail.com>
This commit is contained in:
Daniel Kříž 2022-03-23 23:28:51 +01:00
parent 7538ad81ac
commit 0535ef549a
2 changed files with 25 additions and 0 deletions

View file

@ -1294,6 +1294,18 @@ void EditorFileDialog::_update_favorites() {
favorite->set_pressed(false);
Vector<String> favorited = EditorSettings::get_singleton()->get_favorites();
bool fav_changed = false;
for (int i = favorited.size() - 1; i >= 0; i--) {
if (!dir_access->dir_exists(favorited[i])) {
favorited.remove_at(i);
fav_changed = true;
}
}
if (fav_changed) {
EditorSettings::get_singleton()->set_favorites(favorited);
}
for (int i = 0; i < favorited.size(); i++) {
bool cres = favorited[i].begins_with("res://");
if (cres != res) {

View file

@ -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://")) {