diff options
author | Sebastian Thiel <sebastian.thiel@icloud.com> | 2024-01-10 09:00:02 +0100 |
---|---|---|
committer | Piotr Wach <pwach@bloomberg.net> | 2024-01-10 20:48:54 +0000 |
commit | 0ad90ba23e59b98ccca198ce075e582c93d13c5c (patch) | |
tree | fa659bf4a6df5259ccb39fea2773d0ab33d7dd81 /src | |
parent | 85005ce364b08066a76ab2a8743ce18b4662fa3c (diff) |
make WalkOptions available in State so it can re-use it for additional walks.
Diffstat (limited to 'src')
-rw-r--r-- | src/interactive/app/eventloop.rs | 11 | ||||
-rw-r--r-- | src/interactive/app/state.rs | 20 | ||||
-rw-r--r-- | src/interactive/app/terminal.rs | 7 |
3 files changed, 24 insertions, 14 deletions
diff --git a/src/interactive/app/eventloop.rs b/src/interactive/app/eventloop.rs index 71dcb82..bdb278e 100644 --- a/src/interactive/app/eventloop.rs +++ b/src/interactive/app/eventloop.rs @@ -11,7 +11,7 @@ use crosstermion::crossterm::event::{KeyCode, KeyEvent, KeyEventKind, KeyModifie use crosstermion::input::Event; use dua::{ traverse::{BackgroundTraversal, EntryData, Traversal}, - WalkOptions, WalkResult, + WalkResult, }; use std::path::PathBuf; use tui::backend::Backend; @@ -64,14 +64,9 @@ impl AppState { result } - pub fn traverse( - &mut self, - traversal: &Traversal, - walk_options: &WalkOptions, - input: Vec<PathBuf>, - ) -> Result<()> { + pub fn traverse(&mut self, traversal: &Traversal, input: Vec<PathBuf>) -> Result<()> { let background_traversal = - BackgroundTraversal::start(traversal.root_index, walk_options, input)?; + BackgroundTraversal::start(traversal.root_index, &self.walk_options, input)?; self.navigation_mut().view_root = traversal.root_index; self.active_traversal = Some(background_traversal); Ok(()) diff --git a/src/interactive/app/state.rs b/src/interactive/app/state.rs index b303531..5dcdbff 100644 --- a/src/interactive/app/state.rs +++ b/src/interactive/app/state.rs @@ -1,6 +1,7 @@ use std::collections::HashSet; use dua::traverse::BackgroundTraversal; +use dua::WalkOptions; use crate::interactive::widgets::Column; @@ -22,7 +23,6 @@ pub struct Cursor { pub y: u16, } -#[derive(Default)] pub struct AppState { pub navigation: Navigation, pub glob_navigation: Option<Navigation>, @@ -33,4 +33,22 @@ pub struct AppState { pub focussed: FocussedPane, pub received_events: bool, pub active_traversal: Option<BackgroundTraversal>, + pub walk_options: WalkOptions, +} + +impl AppState { + pub fn new(walk_options: WalkOptions) -> Self { + AppState { + navigation: Default::default(), + glob_navigation: None, + entries: vec![], + sorting: Default::default(), + show_columns: Default::default(), + message: None, + focussed: Default::default(), + received_events: false, + active_traversal: None, + walk_options, + } + } } diff --git a/src/interactive/app/terminal.rs b/src/interactive/app/terminal.rs index 2109e00..64c68af 100644 --- a/src/interactive/app/terminal.rs +++ b/src/interactive/app/terminal.rs @@ -20,7 +20,6 @@ pub struct TerminalApp { pub display: DisplayOptions, pub state: AppState, pub window: MainWindow, - pub walk_options: WalkOptions, } impl TerminalApp { @@ -38,7 +37,7 @@ impl TerminalApp { let display = DisplayOptions::new(byte_format); let window = MainWindow::default(); - let mut state = AppState::default(); + let mut state = AppState::new(walk_options); let traversal = { let mut tree = Tree::new(); @@ -68,14 +67,12 @@ impl TerminalApp { display, traversal, window, - walk_options, }; Ok(app) } pub fn traverse(&mut self, input: Vec<PathBuf>) -> Result<()> { - self.state - .traverse(&self.traversal, &self.walk_options, input)?; + self.state.traverse(&self.traversal, input)?; Ok(()) } |