diff options
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(()) } |