Fix persistent favorites after rename

Signed-off-by: Daniel Kříž <Daniel.kriz@protonmail.com>
(cherry picked from commit 0535ef549a)
This commit is contained in:
Daniel Kříž 2022-03-23 23:28:51 +01:00 committed by Rémi Verschelde
parent 8d1827cf7c
commit 7ed3bfc2fb
2 changed files with 25 additions and 0 deletions

View file

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

View file

@ -219,6 +219,19 @@ void FileSystemDock::_update_tree(const Vector<String> &p_uncollapsed_paths, boo
favorites->set_collapsed(p_uncollapsed_paths.find("Favorites") < 0); favorites->set_collapsed(p_uncollapsed_paths.find("Favorites") < 0);
Vector<String> favorite_paths = EditorSettings::get_singleton()->get_favorites(); 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(i);
fav_changed = true;
}
}
if (fav_changed) {
EditorSettings::get_singleton()->set_favorites(favorite_paths);
}
for (int i = 0; i < favorite_paths.size(); i++) { for (int i = 0; i < favorite_paths.size(); i++) {
String fave = favorite_paths[i]; String fave = favorite_paths[i];
if (!fave.begins_with("res://")) { if (!fave.begins_with("res://")) {