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
This commit is contained in:
parent
8104f54887
commit
d7c1710482
@ -34,9 +34,8 @@ pub struct FlattenedItem {
|
|||||||
|
|
||||||
impl AppState {
|
impl AppState {
|
||||||
pub fn new(cache: Cache, config: Config) -> Self {
|
pub fn new(cache: Cache, config: Config) -> Self {
|
||||||
let mut expanded_dirs = HashSet::new();
|
// Start with all directories collapsed (vifm-style)
|
||||||
// Start with all directories expanded
|
let expanded_dirs = HashSet::new();
|
||||||
collect_all_dirs(&cache.file_tree, &mut expanded_dirs);
|
|
||||||
|
|
||||||
let flattened_items = flatten_tree(&cache.file_tree, 0, &expanded_dirs);
|
let flattened_items = flatten_tree(&cache.file_tree, 0, &expanded_dirs);
|
||||||
|
|
||||||
@ -107,8 +106,7 @@ impl AppState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn refresh_flattened_items(&mut self) {
|
pub fn refresh_flattened_items(&mut self) {
|
||||||
self.expanded_dirs.clear();
|
// Keep current expanded state after rescan
|
||||||
collect_all_dirs(&self.cache.file_tree, &mut self.expanded_dirs);
|
|
||||||
self.rebuild_flattened_items();
|
self.rebuild_flattened_items();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,12 +137,3 @@ fn flatten_tree(nodes: &[FileTreeNode], depth: usize, expanded_dirs: &HashSet<Pa
|
|||||||
|
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
fn collect_all_dirs(nodes: &[FileTreeNode], dirs: &mut HashSet<PathBuf>) {
|
|
||||||
for node in nodes {
|
|
||||||
if node.is_dir {
|
|
||||||
dirs.insert(node.path.clone());
|
|
||||||
collect_all_dirs(&node.children, dirs);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user