Skip to content

Commit

Permalink
Use appropriate tree view when listing entries
Browse files Browse the repository at this point in the history
  • Loading branch information
piotrwach committed Dec 19, 2023
1 parent f3b5d00 commit 7244bac
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
18 changes: 12 additions & 6 deletions src/interactive/app/eventloop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -242,8 +242,13 @@ impl AppState {
tree_view.tree_as_mut().add_edge(tree_root, idx, ());
}

let glob_tree_view = GlobTreeView {
traversal: tree_view.traversal_as_mut(),
glob_tree_root: tree_root
};

let new_entries =
sorted_entries(tree_view.tree(), tree_root, self.sorting, Some(tree_root));
glob_tree_view.sorted_entries(tree_root, self.sorting);

let new_entries = self
.navigation_mut()
Expand Down Expand Up @@ -294,15 +299,16 @@ impl AppState {
self.glob_mode = None;
window.glob_pane = None;

let normal_tree_view = NormalTreeView {
traversal: tree_view.traversal_as_mut()
};

let new_entries = self.navigation().selected.map(|previously_selected| {
(
previously_selected,
sorted_entries(
tree_view.tree(),
normal_tree_view.sorted_entries(
self.navigation().view_root,
self.sorting,
None,
),
self.sorting),
)
});
self.enter_node(new_entries);
Expand Down
9 changes: 9 additions & 0 deletions src/interactive/app/tree_view.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use std::path::{Path, PathBuf};

pub trait TreeView {
fn traversal(&self) -> &Traversal;
fn traversal_as_mut(&mut self) -> &mut Traversal;

fn tree(&self) -> &Tree;
fn tree_as_mut(&mut self) -> &mut Tree;
Expand Down Expand Up @@ -63,6 +64,10 @@ impl<'a> TreeView for NormalTreeView<'a> {
self.traversal
}

fn traversal_as_mut(&mut self) -> &mut Traversal {
self.traversal
}

fn recompute_sizes_recursively(&mut self, mut index: TreeIndex) {
loop {
self.traversal
Expand Down Expand Up @@ -155,6 +160,10 @@ impl<'a> TreeView for GlobTreeView<'a> {
self.traversal
}

fn traversal_as_mut(&mut self) -> &mut Traversal {
self.traversal
}

fn recompute_sizes_recursively(&mut self, mut index: TreeIndex) {
loop {
self.traversal
Expand Down

0 comments on commit 7244bac

Please sign in to comment.