diff options
author | Jeff Zhao <jeff.no.zhao@gmail.com> | 2021-05-07 20:29:13 -0400 |
---|---|---|
committer | Jeff Zhao <jeff.no.zhao@gmail.com> | 2021-05-07 20:29:13 -0400 |
commit | e243248bb7fb5b7b08e210f18068f42724ee0feb (patch) | |
tree | e026fc608d08a3dcbce9600abcc96c864958cdc3 /src/ui | |
parent | 65f7aaf582ae07eb2a16fbdbab53ae2b88f21d5d (diff) |
add more info to io work
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/widgets/tui_worker.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/ui/widgets/tui_worker.rs b/src/ui/widgets/tui_worker.rs index bfd7b3a..110d694 100644 --- a/src/ui/widgets/tui_worker.rs +++ b/src/ui/widgets/tui_worker.rs @@ -5,6 +5,7 @@ use tui::widgets::Widget; use crate::context::AppContext; use crate::io::FileOp; +use crate::util::format; pub struct TuiWorker<'a> { pub context: &'a AppContext, @@ -25,19 +26,28 @@ impl<'a> Widget for TuiWorker<'a> { FileOp::Copy => "Copying", FileOp::Cut => "Moving", }; + + let processed_size = format::file_size_to_string(progress.bytes_processed()); + let total_size = format::file_size_to_string(progress.total_bytes()); + let msg = format!( - "{} ({}/{}) {:?}", + "{} ({}/{}) ({}/{}) {:?}", op_str, - progress.completed() + 1, - progress.len(), + progress.files_processed() + 1, + progress.total_files(), + processed_size, + total_size, io_obs.dest_path() ); + let style = Style::default(); buf.set_stringn(0, 2, msg, area.width as usize, style); // draw a progress bar - let progress_bar_width = (progress.completed() as f32 / progress.len() as f32 + let progress_bar_width = (progress.files_processed() as f32 + / progress.total_files() as f32 * area.width as f32) as usize; + let progress_bar_space = " ".repeat(progress_bar_width); let style = Style::default().bg(Color::Blue); buf.set_stringn(0, 3, progress_bar_space, area.width as usize, style); |