summaryrefslogtreecommitdiffstats
path: root/src/app
diff options
context:
space:
mode:
authorCanop <cano.petrole@gmail.com>2021-06-01 13:01:54 +0200
committerCanop <cano.petrole@gmail.com>2021-06-01 13:03:44 +0200
commitf66974936561b95285aabfce0d194d1d574e9f5e (patch)
tree16fced838dc5c5eb25d6d291306d0a750c6999d1 /src/app
parentde1bbcac35ac7c6ca736c7917c87f40e824e1a4a (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.rs7
-rw-r--r--src/app/panel.rs4
-rw-r--r--src/app/panel_state.rs7
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
}