summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Wach <pwach@bloomberg.net>2024-01-06 21:28:01 +0000
committerPiotr Wach <pwach@bloomberg.net>2024-01-06 21:28:01 +0000
commitcf3c507bb43221066acf96cde778b66bbd578669 (patch)
tree893f62112100a5d0d576acbaa6a631558e9c7b0e
parent807916ced6e4ec195e0c3805181f3ccd78d69ce3 (diff)
Scan disabled
-rw-r--r--src/interactive/app/eventloop.rs134
1 files changed, 74 insertions, 60 deletions
diff --git a/src/interactive/app/eventloop.rs b/src/interactive/app/eventloop.rs
index 10b5c14..8132f6b 100644
--- a/src/interactive/app/eventloop.rs
+++ b/src/interactive/app/eventloop.rs
@@ -10,7 +10,7 @@ use crossbeam::channel::Receiver;
use crosstermion::crossterm::event::{KeyCode, KeyEvent, KeyEventKind, KeyModifiers};
use crosstermion::input::Event;
use dua::{
- traverse::{EntryData, Traversal},
+ traverse::{EntryData, Traversal, Tree},
WalkOptions, WalkResult,
};
use std::path::PathBuf;
@@ -394,82 +394,96 @@ impl TerminalApp {
{
terminal.hide_cursor()?;
terminal.clear()?;
+
let mut display: DisplayOptions = options.clone().into();
display.byte_vis = ByteVisualization::PercentageAndBar;
+
let mut window = MainWindow::default();
- #[inline]
- fn fetch_buffered_key_events(keys_rx: &Receiver<Event>) -> Vec<Event> {
- let mut keys = Vec::new();
- while let Ok(key) = keys_rx.try_recv() {
- keys.push(key);
- }
- keys
- }
+ // #[inline]
+ // fn fetch_buffered_key_events(keys_rx: &Receiver<Event>) -> Vec<Event> {
+ // let mut keys = Vec::new();
+ // while let Ok(key) = keys_rx.try_recv() {
+ // keys.push(key);
+ // }
+ // keys
+ // }
let mut state = AppState {
- is_scanning: true,
+ is_scanning: false,
..Default::default()
};
- let mut received_events = false;
- let traversal =
- Traversal::from_walk(options, input_paths, &keys_rx, |traversal, event| {
- if !received_events {
- state.navigation_mut().view_root = traversal.root_index;
- }
- state.entries = sorted_entries(
- &traversal.tree,
- state.navigation().view_root,
- state.sorting,
- state.glob_root(),
- );
- if !received_events {
- state.navigation_mut().selected = state.entries.first().map(|b| b.index);
- }
- state.reset_message(); // force "scanning" to appear
-
- let mut events = fetch_buffered_key_events(&keys_rx);
- if let Some(event) = event {
- // This update is triggered by a user event, insert it
- // before any events fetched later.
- events.insert(0, event);
- }
- received_events |= !events.is_empty();
-
- let should_exit = match state.process_events(
- &mut window,
- traversal,
- &mut display,
- terminal,
- events.into_iter(),
- )? {
- ProcessingResult::ExitRequested(_) => true,
- ProcessingResult::Finished(_) => false,
- };
-
- Ok(should_exit)
- })?;
- let traversal = match traversal {
- Some(t) => t,
- None => return Ok(None),
+ // let mut received_events = false;
+ // let traversal =
+ // Traversal::from_walk(options, input_paths, &keys_rx, |traversal, event| {
+ // if !received_events {
+ // state.navigation_mut().view_root = traversal.root_index;
+ // }
+ // state.entries = sorted_entries(
+ // &traversal.tree,
+ // state.navigation().view_root,
+ // state.sorting,
+ // state.glob_root(),
+ // );
+ // if !received_events {
+ // state.navigation_mut().selected = state.entries.first().map(|b| b.index);
+ // }
+ // state.reset_message(); // force "scanning" to appear
+
+ // let mut events = fetch_buffered_key_events(&keys_rx);
+ // if let Some(event) = event {
+ // // This update is triggered by a user event, insert it
+ // // before any events fetched later.
+ // events.insert(0, event);
+ // }
+ // received_events |= !events.is_empty();
+
+ // let should_exit = match state.process_events(
+ // &mut window,
+ // traversal,
+ // &mut display,
+ // terminal,
+ // events.into_iter(),
+ // )? {
+ // ProcessingResult::ExitRequested(_) => true,
+ // ProcessingResult::Finished(_) => false,
+ // };
+
+ // Ok(should_exit)
+ // })?;
+
+ // let traversal = match traversal {
+ // Some(t) => t,
+ // None => return Ok(None),
+ // };
+
+ // state.is_scanning = false;
+ // if !received_events {
+ // }
+
+ let traversal = {
+ let mut tree = Tree::new();
+ let root_index = tree.add_node(EntryData::default());
+ Traversal {
+ tree,
+ root_index,
+ entries_traversed: 0,
+ start: std::time::Instant::now(),
+ elapsed: None,
+ io_errors: 0,
+ total_bytes: None,
+ }
};
- state.is_scanning = false;
- if !received_events {
- state.navigation_mut().view_root = traversal.root_index;
- }
+ state.navigation_mut().view_root = traversal.root_index;
state.entries = sorted_entries(
&traversal.tree,
state.navigation().view_root,
state.sorting,
state.glob_root(),
);
- state.navigation_mut().selected = state
- .navigation()
- .selected
- .filter(|_| received_events)
- .or_else(|| state.entries.first().map(|b| b.index));
+ state.navigation_mut().selected = state.entries.first().map(|b| b.index);
let mut app = TerminalApp {
state,