diff --git a/src/interactive/app.rs b/src/interactive/app.rs index 2de1d804..50674cd7 100644 --- a/src/interactive/app.rs +++ b/src/interactive/app.rs @@ -154,6 +154,7 @@ impl TerminalApp { root: traversal.root_index, selected: None, sorting: Default::default(), + message: Some("-> scanning <-".into()), }; MainWindow { traversal, @@ -175,9 +176,10 @@ impl TerminalApp { root, selected, sorting, + message: None, }, display: display_options, - traversal: traversal, + traversal, }) } } diff --git a/src/interactive/widgets.rs b/src/interactive/widgets.rs index c3a62cd7..b5114809 100644 --- a/src/interactive/widgets.rs +++ b/src/interactive/widgets.rs @@ -48,6 +48,7 @@ pub struct DisplayState { pub root: TreeIndex, pub selected: Option, pub sorting: SortMode, + pub message: Option, } pub struct MainWindow<'a, 'b> { @@ -60,6 +61,7 @@ pub struct Footer { pub total_bytes: Option, pub entries_traversed: u64, pub format: ByteFormat, + pub message: Option, } impl Widget for Footer { @@ -73,12 +75,16 @@ impl Widget for Footer { area.x + margin, area.y, format!( - "Total disk usage: {} Entries: {}", + "Total disk usage: {} Entries: {} {}", match self.total_bytes { Some(b) => format!("{}", self.format.display(b)).trim().to_owned(), None => "-".to_owned(), }, - self.entries_traversed + self.entries_traversed, + match self.message { + Some(ref m) => m.as_str(), + None => "", + } ), (area.width - margin) as usize, Style { @@ -89,7 +95,7 @@ impl Widget for Footer { ) } } -impl<'a, 'b> Widget for MainWindow<'a, 'b> { +impl<'a, 'b, 'c> Widget for MainWindow<'a, 'b> { fn draw(&mut self, area: Rect, buf: &mut Buffer) { let Self { traversal: @@ -120,6 +126,7 @@ impl<'a, 'b> Widget for MainWindow<'a, 'b> { total_bytes: *total_bytes, entries_traversed: *entries_traversed, format: display.byte_format, + message: state.message.clone(), } .draw(footer, buf); }