From d7c171048250b242ea7a1bd7a22ded44266b4d68 Mon Sep 17 00:00:00 2001 From: Christoffer Martinsson Date: Sat, 6 Dec 2025 12:40:53 +0100 Subject: [PATCH] Start with all directories collapsed - Directories now start collapsed by default (vifm-style) - User must press 'l' to expand directories - Preserves expanded state during rescan - Remove unused collect_all_dirs function --- src/state/mod.rs | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/state/mod.rs b/src/state/mod.rs index 752673c..5aaf646 100644 --- a/src/state/mod.rs +++ b/src/state/mod.rs @@ -34,9 +34,8 @@ pub struct FlattenedItem { impl AppState { pub fn new(cache: Cache, config: Config) -> Self { - let mut expanded_dirs = HashSet::new(); - // Start with all directories expanded - collect_all_dirs(&cache.file_tree, &mut expanded_dirs); + // Start with all directories collapsed (vifm-style) + let expanded_dirs = HashSet::new(); let flattened_items = flatten_tree(&cache.file_tree, 0, &expanded_dirs); @@ -107,8 +106,7 @@ impl AppState { } pub fn refresh_flattened_items(&mut self) { - self.expanded_dirs.clear(); - collect_all_dirs(&self.cache.file_tree, &mut self.expanded_dirs); + // Keep current expanded state after rescan self.rebuild_flattened_items(); } @@ -139,12 +137,3 @@ fn flatten_tree(nodes: &[FileTreeNode], depth: usize, expanded_dirs: &HashSet) { - for node in nodes { - if node.is_dir { - dirs.insert(node.path.clone()); - collect_all_dirs(&node.children, dirs); - } - } -}