diff options
author | Canop <cano.petrole@gmail.com> | 2021-06-01 13:01:54 +0200 |
---|---|---|
committer | Canop <cano.petrole@gmail.com> | 2021-06-01 13:03:44 +0200 |
commit | f66974936561b95285aabfce0d194d1d574e9f5e (patch) | |
tree | 16fced838dc5c5eb25d6d291306d0a750c6999d1 /src/app | |
parent | de1bbcac35ac7c6ca736c7917c87f40e824e1a4a (diff) |
compute total staging area size
when show_size has been set to true (for example with :toggle_sizes)
The computation is done in background
Diffstat (limited to 'src/app')
-rw-r--r-- | src/app/app.rs | 7 | ||||
-rw-r--r-- | src/app/panel.rs | 4 | ||||
-rw-r--r-- | src/app/panel_state.rs | 7 |
3 files changed, 12 insertions, 6 deletions
diff --git a/src/app/app.rs b/src/app/app.rs index fd21e35..c99b71c 100644 --- a/src/app/app.rs +++ b/src/app/app.rs @@ -604,7 +604,7 @@ impl App { con: &AppContext, ) -> Result<(), ProgramError> { while self.has_pending_task() && !dam.has_event() { - if self.do_pending_task(con, dam) { + if self.do_pending_task(app_state, con, dam) { self.update_preview(con); // the selection may have changed let app_cmd_context = AppCmdContext { other_path: self.get_other_panel_path(), @@ -627,13 +627,14 @@ impl App { /// do the next pending task fn do_pending_task( &mut self, + app_state: &AppState, con: &AppContext, dam: &mut Dam, ) -> bool { let screen = self.screen; // we start with the focused panel if self.panel().has_pending_task() { - self.mut_panel().do_pending_task(screen, con, dam); + self.mut_panel().do_pending_task(&app_state.stage, screen, con, dam); return true; } // then the other ones @@ -641,7 +642,7 @@ impl App { if idx != self.active_panel_idx { let panel = &mut self.panels[idx]; if panel.has_pending_task() { - panel.do_pending_task(screen, con, dam); + panel.do_pending_task(&app_state.stage, screen, con, dam); return true; } } diff --git a/src/app/panel.rs b/src/app/panel.rs index 1c9daa5..61cea36 100644 --- a/src/app/panel.rs +++ b/src/app/panel.rs @@ -13,6 +13,7 @@ use { errors::ProgramError, keys, skin::PanelSkin, + stage::*, task_sync::Dam, verb::*, }, @@ -106,11 +107,12 @@ impl Panel { /// in the dam pub fn do_pending_task( &mut self, + stage: &Stage, screen: Screen, con: &AppContext, dam: &mut Dam, ) { - self.mut_state().do_pending_task(screen, con, dam) + self.mut_state().do_pending_task(stage, screen, con, dam) } pub fn has_pending_task(&self) -> bool { diff --git a/src/app/panel_state.rs b/src/app/panel_state.rs index 14acbe1..ff4bee3 100644 --- a/src/app/panel_state.rs +++ b/src/app/panel_state.rs @@ -9,7 +9,7 @@ use { pattern::*, preview::{PreviewMode, PreviewState}, print, - stage::StageState, + stage::*, task_sync::Dam, tree::*, verb::*, @@ -650,6 +650,7 @@ pub trait PanelState { fn do_pending_task( &mut self, + _stage: &Stage, _screen: Screen, _con: &AppContext, _dam: &mut Dam, @@ -658,7 +659,9 @@ pub trait PanelState { unreachable!(); } - fn get_pending_task(&self) -> Option<&'static str> { + fn get_pending_task( + &self, + ) -> Option<&'static str> { None } |