summaryrefslogtreecommitdiffstats
path: root/src/ui
diff options
context:
space:
mode:
authorJeff Zhao <jeff.no.zhao@gmail.com>2021-05-07 20:29:13 -0400
committerJeff Zhao <jeff.no.zhao@gmail.com>2021-05-07 20:29:13 -0400
commite243248bb7fb5b7b08e210f18068f42724ee0feb (patch)
treee026fc608d08a3dcbce9600abcc96c864958cdc3 /src/ui
parent65f7aaf582ae07eb2a16fbdbab53ae2b88f21d5d (diff)
add more info to io work
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/widgets/tui_worker.rs18
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);