diff options
author | Sebastian Thiel <sthiel@thoughtworks.com> | 2019-06-16 11:39:40 +0800 |
---|---|---|
committer | Sebastian Thiel <sthiel@thoughtworks.com> | 2019-06-16 11:39:40 +0800 |
commit | d5867038aa8d1d216c146fe8d0a919352dce4855 (patch) | |
tree | 9fc5c9a186b40c5e5dcc659269a612ee571be75c | |
parent | a8f595f576f164fd13e59230370b310119599f43 (diff) |
Better progress display when deleting multiple items
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | src/interactive/app/handlers.rs | 21 |
3 files changed, 21 insertions, 6 deletions
@@ -1,6 +1,6 @@ [package] name = "dua-cli" -version = "2.1.0" +version = "2.1.1" authors = ["Sebastian Thiel <byronimo@gmail.com>"] edition = "2018" include = ["src/**/*", "Cargo.toml"] @@ -43,6 +43,10 @@ dua interactive * [ ] Evaluate unit coloring - can we highlight different units better, make them stick out? +#### ✅ v2.1.01 bug fixes and improvements + +* Better information about deletion progress + #### ✅ v2.1.0- bug fixes and improvements * windows support diff --git a/src/interactive/app/handlers.rs b/src/interactive/app/handlers.rs index d65dab8..976a53b 100644 --- a/src/interactive/app/handlers.rs +++ b/src/interactive/app/handlers.rs @@ -180,7 +180,8 @@ impl TerminalApp { self.state.entries = sorted_entries(&self.traversal.tree, root, self.state.sorting); } - pub fn delete_entry(&mut self, index: TreeIndex) -> Result<(), usize> { + pub fn delete_entry(&mut self, index: TreeIndex) -> Result<usize, usize> { + let mut entries_deleted = 0; if let Some(_entry) = self.traversal.tree.node_weight(index) { let path_to_delete = path_of(&self.traversal.tree, index); delete_directory_recursively(path_to_delete)?; @@ -194,6 +195,7 @@ impl TerminalApp { while let Some(nx) = bfs.next(&self.traversal.tree) { self.traversal.tree.remove_node(nx); self.traversal.entries_traversed -= 1; + entries_deleted += 1; } self.state.entries = sorted_entries(&self.traversal.tree, self.state.root, self.state.sorting); @@ -209,7 +211,7 @@ impl TerminalApp { } self.recompute_sizes_recursively(parent_idx); } - Ok(()) + Ok(entries_deleted) } fn recompute_sizes_recursively(&mut self, mut index: TreeIndex) { @@ -249,15 +251,24 @@ impl TerminalApp { self.window.mark_pane = match res { Some((pane, mode)) => match mode { Some(MarkMode::Delete) => { - pane.iterate_deletable_items(|mut pane, entry_to_delete| { + self.state.message = Some("Deleting entries...".to_string()); + let mut entries_deleted = 0; + let res = pane.iterate_deletable_items(|mut pane, entry_to_delete| { self.window.mark_pane = Some(pane); self.draw(terminal).ok(); pane = self.window.mark_pane.take().expect("option to be filled"); match self.delete_entry(entry_to_delete) { - Ok(_) => Ok(pane), + Ok(ed) => { + entries_deleted += ed; + self.state.message = + Some(format!("Deleted {} entries...", entries_deleted)); + Ok(pane) + } Err(c) => Err((pane, c)), } - }) + }); + self.state.message = None; + res } None => Some(pane), }, |