summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Wach <pwach@bloomberg.net>2023-12-19 20:57:45 +0000
committerPiotr Wach <pwach@bloomberg.net>2023-12-19 21:14:12 +0000
commit7244bac0fc51697ed6be6597dee82a26da222c23 (patch)
tree206c77f8dfded318344d5a752fad77299e235ad6
parentf3b5d00549be57b5da03f3220057b887372ff254 (diff)
Use appropriate tree view when listing entries
-rw-r--r--src/interactive/app/eventloop.rs18
-rw-r--r--src/interactive/app/tree_view.rs9
2 files changed, 21 insertions, 6 deletions
diff --git a/src/interactive/app/eventloop.rs b/src/interactive/app/eventloop.rs
index f394c53..5e1694f 100644
--- a/src/interactive/app/eventloop.rs
+++ b/src/interactive/app/eventloop.rs
@@ -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()
@@ -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);
diff --git a/src/interactive/app/tree_view.rs b/src/interactive/app/tree_view.rs
index 3005db6..5718fa9 100644
--- a/src/interactive/app/tree_view.rs
+++ b/src/interactive/app/tree_view.rs
@@ -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;
@@ -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
@@ -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