summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-04-18 12:24:59 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-04-18 12:24:59 +0200
commitc1efd37e3bb88272f60507649f6914600104a109 (patch)
tree95464a4eda6817a26e83797e28043cba08db405a
parent9c05ff29528816f12a2c9045b23d3ed7adb1aba7 (diff)
parent4efaeefaecdbbade4ed347d224193f1ed178bd0b (diff)
downloadredot-engine-c1efd37e3bb88272f60507649f6914600104a109.tar.gz
Merge pull request #90829 from timothyqiu/remove-sub-color
Fix folder color not cleared for removed subfolders
-rw-r--r--editor/filesystem_dock.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index b811d0f21b..34fd0363b1 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -59,8 +59,6 @@
#include "scene/gui/label.h"
#include "scene/gui/line_edit.h"
#include "scene/gui/progress_bar.h"
-#include "scene/gui/texture_rect.h"
-#include "scene/main/window.h"
#include "scene/resources/packed_scene.h"
#include "servers/display_server.h"
@@ -1778,8 +1776,19 @@ void FileSystemDock::_folder_removed(const String &p_folder) {
current_path = current_path.get_base_dir();
}
- if (assigned_folder_colors.has(p_folder)) {
- assigned_folder_colors.erase(p_folder);
+ // Remove assigned folder color for all subfolders.
+ bool folder_colors_updated = false;
+ List<Variant> paths;
+ assigned_folder_colors.get_key_list(&paths);
+ for (const Variant &E : paths) {
+ const String &path = E;
+ // These folder paths are guaranteed to end with a "/".
+ if (path.begins_with(p_folder)) {
+ assigned_folder_colors.erase(path);
+ folder_colors_updated = true;
+ }
+ }
+ if (folder_colors_updated) {
_update_folder_colors_setting();
}