diff options
author | Sebastian Thiel <sebastian.thiel@icloud.com> | 2024-01-23 15:24:52 +0100 |
---|---|---|
committer | Sebastian Thiel <sebastian.thiel@icloud.com> | 2024-01-23 15:39:56 +0100 |
commit | 78b9a8e22568c902132ed98d32e223ff71eb7b06 (patch) | |
tree | c097091966e2af1b00916ff6e70d49ee4362b532 /src/interactive/app/eventloop.rs | |
parent | 600bee234edd4e7922017c26927a6f135a02c335 (diff) |
feat: add `dua i --no-entry-check` flag. (#227)
With it, in interactive mode, entries will not be checked for presence.
This can avoid laggy behaviour when switching between directories
as `lstat` calls will not run, which can be slow on some filesystems.
Diffstat (limited to 'src/interactive/app/eventloop.rs')
-rw-r--r-- | src/interactive/app/eventloop.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/interactive/app/eventloop.rs b/src/interactive/app/eventloop.rs index 1053539..c2562fc 100644 --- a/src/interactive/app/eventloop.rs +++ b/src/interactive/app/eventloop.rs @@ -3,7 +3,7 @@ use crate::interactive::{ app::navigation::Navigation, state::FocussedPane, widgets::{glob_search, MainWindow, MainWindowProps}, - CursorDirection, CursorMode, DisplayOptions, MarkEntryMode, + CursorDirection, CursorMode, DisplayOptions, EntryCheck, MarkEntryMode, }; use anyhow::Result; use crossbeam::channel::Receiver; @@ -197,7 +197,7 @@ impl AppState { self.entries = tree_view.sorted_entries( self.navigation().view_root, self.sorting, - self.scan.is_some(), + self.entry_check(), ); if !self.received_events { @@ -217,6 +217,10 @@ impl AppState { self.reset_message(); // force "scanning" to appear } + pub(crate) fn entry_check(&self) -> EntryCheck { + EntryCheck::new(self.scan.is_some(), self.allow_entry_check) + } + fn process_terminal_event<B>( &mut self, window: &mut MainWindow, @@ -443,7 +447,7 @@ impl AppState { self.entries = tree.sorted_entries( self.navigation().view_root, self.sorting, - self.scan.is_some(), + self.entry_check(), ); self.navigation_mut().selected = self.entries.first().map(|e| e.index); @@ -498,7 +502,7 @@ impl AppState { glob_tree_root: Some(tree_root), }; let new_entries = - glob_tree_view.sorted_entries(tree_root, self.sorting, self.scan.is_some()); + glob_tree_view.sorted_entries(tree_root, self.sorting, self.entry_check()); let new_entries = self .navigation_mut() @@ -553,7 +557,7 @@ impl AppState { self.entries = tree_view.sorted_entries( self.navigation().view_root, self.sorting, - self.scan.is_some(), + self.entry_check(), ); } } |