diff options
author | Jeff Zhao <jeff.no.zhao@gmail.com> | 2021-05-01 09:57:58 -0400 |
---|---|---|
committer | Jeff Zhao <jeff.no.zhao@gmail.com> | 2021-05-01 10:00:45 -0400 |
commit | 4409199315c5cc22bfba6cc63052a49dbdddfeb1 (patch) | |
tree | cfda2851a0c01cd183643810a6fe0941129f103a | |
parent | 297a06ef3a529687e7edb84d5f67376c654b1927 (diff) |
remove methods
-rw-r--r-- | src/commands/change_directory.rs | 2 | ||||
-rw-r--r-- | src/commands/cursor_move.rs | 4 | ||||
-rw-r--r-- | src/commands/delete_files.rs | 2 | ||||
-rw-r--r-- | src/commands/new_directory.rs | 2 | ||||
-rw-r--r-- | src/commands/parent_cursor_move.rs | 2 | ||||
-rw-r--r-- | src/commands/reload.rs | 4 | ||||
-rw-r--r-- | src/commands/rename_file.rs | 2 | ||||
-rw-r--r-- | src/commands/show_hidden.rs | 7 | ||||
-rw-r--r-- | src/commands/sort.rs | 6 | ||||
-rw-r--r-- | src/commands/tab_ops.rs | 11 | ||||
-rw-r--r-- | src/config/theme/theme.rs | 4 | ||||
-rw-r--r-- | src/context/context.rs | 57 | ||||
-rw-r--r-- | src/fs/dirlist.rs | 4 | ||||
-rw-r--r-- | src/ui/views/tui_folder_view.rs | 21 | ||||
-rw-r--r-- | src/ui/views/tui_textfield.rs | 7 | ||||
-rw-r--r-- | src/ui/widgets/tui_topbar.rs | 7 | ||||
-rw-r--r-- | src/util/format.rs | 2 | ||||
-rw-r--r-- | src/util/input.rs | 4 | ||||
-rw-r--r-- | src/util/load_child.rs | 2 |
19 files changed, 71 insertions, 79 deletions
diff --git a/src/commands/change_directory.rs b/src/commands/change_directory.rs index 6268d01..f9b2657 100644 --- a/src/commands/change_directory.rs +++ b/src/commands/change_directory.rs @@ -13,7 +13,7 @@ pub fn cd(path: &path::Path, context: &mut AppContext) -> std::io::Result<()> { fn _change_directory(path: &path::Path, context: &mut AppContext) -> std::io::Result<()> { cd(path, context)?; - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); context .tab_context_mut() .curr_tab_mut() diff --git a/src/commands/cursor_move.rs b/src/commands/cursor_move.rs index 4e81473..a2bd90c 100644 --- a/src/commands/cursor_move.rs +++ b/src/commands/cursor_move.rs @@ -9,7 +9,7 @@ pub fn cursor_move(new_index: usize, context: &mut AppContext) -> JoshutoResult< let mut new_index = new_index; if let Some(curr_list) = context.tab_context_mut().curr_tab_mut().curr_list_mut() { - if curr_list.index.is_some() { + if !curr_list.is_empty() { let dir_len = curr_list.len(); if new_index >= dir_len { new_index = dir_len - 1; @@ -24,7 +24,7 @@ pub fn cursor_move(new_index: usize, context: &mut AppContext) -> JoshutoResult< // get preview if let Some(path) = path { if path.is_dir() { - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); context .tab_context_mut() .curr_tab_mut() diff --git a/src/commands/delete_files.rs b/src/commands/delete_files.rs index 94e9d63..36a4a25 100644 --- a/src/commands/delete_files.rs +++ b/src/commands/delete_files.rs @@ -111,7 +111,7 @@ pub fn delete_selected_files( ) -> std::io::Result<()> { delete_files(context, backend)?; - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); let curr_path = context.tab_context_ref().curr_tab_ref().pwd().to_path_buf(); for tab in context.tab_context_mut().iter_mut() { tab.history_mut().reload(&curr_path, &options)?; diff --git a/src/commands/new_directory.rs b/src/commands/new_directory.rs index 52bf9a6..2876fc9 100644 --- a/src/commands/new_directory.rs +++ b/src/commands/new_directory.rs @@ -7,7 +7,7 @@ use crate::util::load_child::LoadChild; pub fn new_directory(context: &mut AppContext, p: &path::Path) -> JoshutoResult<()> { std::fs::create_dir_all(p)?; - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); let curr_path = context.tab_context_ref().curr_tab_ref().pwd().to_path_buf(); for tab in context.tab_context_mut().iter_mut() { tab.history_mut().reload(&curr_path, &options)?; diff --git a/src/commands/parent_cursor_move.rs b/src/commands/parent_cursor_move.rs index 6e77bd8..d9ca361 100644 --- a/src/commands/parent_cursor_move.rs +++ b/src/commands/parent_cursor_move.rs @@ -30,7 +30,7 @@ pub fn parent_cursor_move(new_index: usize, context: &mut AppContext) -> Joshuto // get preview if let Some(path) = path { if path.is_dir() { - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); context .tab_context_mut() .curr_tab_mut() diff --git a/src/commands/reload.rs b/src/commands/reload.rs index 7074191..2cbfcf1 100644 --- a/src/commands/reload.rs +++ b/src/commands/reload.rs @@ -3,7 +3,7 @@ use crate::error::JoshutoResult; use crate::util::load_child::LoadChild; pub fn soft_reload(index: usize, context: &mut AppContext) -> std::io::Result<()> { - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); if let Some(curr_tab) = context.tab_context_mut().tab_mut(index) { if let Some(curr_list) = curr_tab.curr_list_mut() { if curr_list.need_update() { @@ -25,7 +25,7 @@ pub fn soft_reload(index: usize, context: &mut AppContext) -> std::io::Result<() } pub fn reload(context: &mut AppContext, index: usize) -> std::io::Result<()> { - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); if let Some(curr_tab) = context.tab_context_mut().tab_mut(index) { if let Some(curr_list) = curr_tab.curr_list_mut() { curr_list.reload_contents(&options)?; diff --git a/src/commands/rename_file.rs b/src/commands/rename_file.rs index 9f625c4..d8f491b 100644 --- a/src/commands/rename_file.rs +++ b/src/commands/rename_file.rs @@ -18,7 +18,7 @@ pub fn _rename_file( return Err(err); } std::fs::rename(&src, &dest)?; - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); if let Some(curr_list) = context.tab_context_mut().curr_tab_mut().curr_list_mut() { curr_list.reload_contents(&options)?; } diff --git a/src/commands/show_hidden.rs b/src/commands/show_hidden.rs index 2f16a19..9108760 100644 --- a/src/commands/show_hidden.rs +++ b/src/commands/show_hidden.rs @@ -5,8 +5,11 @@ use crate::history::DirectoryHistory; use super::reload; pub fn _toggle_hidden(context: &mut AppContext) { - let opposite = !context.display_options_ref().show_hidden(); - context.display_options_mut().set_show_hidden(opposite); + let opposite = !context.config_ref().display_options_ref().show_hidden(); + context + .config_mut() + .display_options_mut() + .set_show_hidden(opposite); for tab in context.tab_context_mut().iter_mut() { tab.history_mut().depreciate_all_entries(); diff --git a/src/commands/sort.rs b/src/commands/sort.rs index 48f8d2e..ffb8ea0 100644 --- a/src/commands/sort.rs +++ b/src/commands/sort.rs @@ -8,7 +8,7 @@ use crate::util::sort::SortType; use super::reload; pub fn set_sort(context: &mut AppContext, method: SortType) -> JoshutoResult<()> { - context.sort_options_mut().sort_method = method; + context.config_mut().sort_options_mut().sort_method = method; for tab in context.tab_context_mut().iter_mut() { tab.history_mut().depreciate_all_entries(); @@ -20,7 +20,9 @@ pub fn set_sort(context: &mut AppContext, method: SortType) -> JoshutoResult<()> } pub fn toggle_reverse(context: &mut AppContext) -> JoshutoResult<()> { - context.sort_options_mut().reverse = !context.sort_options_ref().reverse; + let reversed = !context.config_ref().sort_options_ref().reverse; + context.config_mut().sort_options_mut().reverse = reversed; + for tab in context.tab_context_mut().iter_mut() { tab.history_mut().depreciate_all_entries(); } diff --git a/src/commands/tab_ops.rs b/src/commands/tab_ops.rs index e934229..d397287 100644 --- a/src/commands/tab_ops.rs +++ b/src/commands/tab_ops.rs @@ -15,12 +15,9 @@ fn _tab_switch(new_index: usize, context: &mut AppContext) -> std::io::Result<() let path = context.tab_context_ref().curr_tab_ref().pwd().to_path_buf(); std::env::set_current_dir(path.as_path())?; - let options = context.display_options_ref().clone(); - context - .tab_context_mut() - .curr_tab_mut() - .history_mut() - .create_or_soft_update(path.as_path(), &options)?; + let options = context.config_ref().display_options_ref().clone(); + let history = context.tab_context_mut().curr_tab_mut().history_mut(); + history.create_or_soft_update(path.as_path(), &options)?; Ok(()) } @@ -39,7 +36,7 @@ pub fn new_tab(context: &mut AppContext) -> JoshutoResult<()> { None => path::PathBuf::from("/"), }; - let tab = JoshutoTab::new(curr_path, context.display_options_ref())?; + let tab = JoshutoTab::new(curr_path, context.config_ref().display_options_ref())?; context.tab_context_mut().push_tab(tab); let new_index = context.tab_context_ref().len() - 1; context.tab_context_mut().set_index(new_index); diff --git a/src/config/theme/theme.rs b/src/config/theme/theme.rs index 1068723..5b05fd3 100644 --- a/src/config/theme/theme.rs +++ b/src/config/theme/theme.rs @@ -6,10 +6,6 @@ use tui::style::{Color, Modifier}; use super::{AppStyle, RawAppStyle}; use crate::config::{parse_to_config_file, ConfigStructure, Flattenable}; -const fn default_color() -> Color { - Color::Reset -} - #[derive(Clone, Debug, Deserialize)] pub struct RawAppTheme { #[serde(default)] diff --git a/src/context/context.rs b/src/context/context.rs index bee44aa..dfc1b89 100644 --- a/src/context/context.rs +++ b/src/context/context.rs @@ -6,20 +6,26 @@ use std::thread; use crate::config; use crate::context::{LocalStateContext, TabContext}; use crate::io::{IoWorkerObserver, IoWorkerProgress, IoWorkerThread}; -use crate::util::display::DisplayOption; use crate::util::event::{AppEvent, Events}; use crate::util::search::SearchPattern; -use crate::util::sort; pub struct AppContext { pub exit: bool, + // app config config: config::AppConfig, + // event loop querying events: Events, + // context related to tabs tab_context: TabContext, + // context related to local file state local_state: Option<LocalStateContext>, + // context related to searching search_state: Option<SearchPattern>, + // message queue for displaying messages message_queue: VecDeque<String>, + // queue of IO workers worker_queue: VecDeque<IoWorkerThread>, + // current worker worker: Option<IoWorkerObserver>, } @@ -38,28 +44,22 @@ impl AppContext { } } - pub fn config_ref(&self) -> &config::AppConfig { - &self.config - } - - pub fn config_mut(&mut self) -> &mut config::AppConfig { - &mut self.config + // event related + pub fn poll_event(&self) -> Result<AppEvent, mpsc::RecvError> { + self.events.next() } - - pub fn display_options_ref(&self) -> &DisplayOption { - self.config_ref().display_options_ref() + pub fn get_event_tx(&self) -> mpsc::Sender<AppEvent> { + self.events.event_tx.clone() } - - pub fn display_options_mut(&mut self) -> &mut DisplayOption { - self.config_mut().display_options_mut() + pub fn flush_event(&self) { + self.events.flush(); } - pub fn sort_options_ref(&self) -> &sort::SortOption { - self.config_ref().display_options_ref().sort_options_ref() + pub fn config_ref(&self) -> &config::AppConfig { + &self.config } - - pub fn sort_options_mut(&mut self) -> &mut sort::SortOption { - self.config_mut().display_options_mut().sort_options_mut() + pub fn config_mut(&mut self) -> &mut config::AppConfig { + &mut self.config } pub fn tab_context_ref(&self) -> &TabContext { @@ -79,17 +79,6 @@ impl AppContext { self.message_queue.pop_front() } - // event related - pub fn poll_event(&self) -> Result<AppEvent, mpsc::RecvError> { - self.events.next() - } - pub fn get_event_tx(&self) -> mpsc::Sender<AppEvent> { - self.events.event_tx.clone() - } - pub fn flush_event(&self) { - self.events.flush(); - } - // local state related pub fn set_local_state(&mut self, state: LocalStateContext) { self.local_state = Some(state); @@ -98,13 +87,12 @@ impl AppContext { self.local_state.take() } - pub fn set_search_state(&mut self, pattern: SearchPattern) { - self.search_state = Some(pattern); - } - pub fn get_search_state(&self) -> Option<&SearchPattern> { self.search_state.as_ref() } + pub fn set_search_state(&mut self, pattern: SearchPattern) { + self.search_state = Some(pattern); + } // worker related pub fn add_worker(&mut self, thread: IoWorkerThread) { @@ -120,7 +108,6 @@ impl AppContext { pub fn worker_iter(&self) -> Iter<IoWorkerThread> { self.worker_queue.iter() } - pub fn worker_ref(&self) -> Option<&IoWorkerObserver> { self.worker.as_ref() } diff --git a/src/fs/dirlist.rs b/src/fs/dirlist.rs index 99e686c..adc848a 100644 --- a/src/fs/dirlist.rs +++ b/src/fs/dirlist.rs @@ -46,6 +46,10 @@ impl JoshutoDirList { self.contents.len() } + pub fn is_empty(&self) -> bool { + self.contents.is_empty() + } + pub fn modified(&self) -> bool { let metadata = std::fs::symlink_metadata(self.file_path()); match metadata { diff --git a/src/ui/views/tui_folder_view.rs b/src/ui/views/tui_folder_view.rs index 24aa36f..3705bd8 100644 --- a/src/ui/views/tui_folder_view.rs +++ b/src/ui/views/tui_folder_view.rs @@ -31,17 +31,18 @@ impl<'a> Widget for TuiFolderView<'a> { let parent_list = curr_tab.parent_list_ref(); let child_list = curr_tab.child_list_ref(); - let constraints: &[Constraint; 3] = - if !self.context.display_options_ref().collapse_preview() { - &self.context.display_options_ref().default_layout - } else { - match child_list { - Some(_) => &self.context.display_options_ref().default_layout, - None => &self.context.display_options_ref().no_preview_layout, - } - }; + let config = self.context.config_ref(); + + let constraints: &[Constraint; 3] = if !config.display_options_ref().collapse_preview() { + &config.display_options_ref().default_layout + } else { + match child_list { + Some(_) => &config.display_options_ref().default_layout, + None => &config.display_options_ref().no_preview_layout, + } + }; - let layout_rect = if self.context.display_options_ref().show_borders() { + let layout_rect = if config.display_options_ref().show_borders() { let area = Rect { y: area.top() + 1, height: area.height - 2, diff --git a/src/ui/views/tui_textfield.rs b/src/ui/views/tui_textfield.rs index 43d8f4d..701bf20 100644 --- a/src/ui/views/tui_textfield.rs +++ b/src/ui/views/tui_textfield.rs @@ -84,8 +84,7 @@ impl<'a> TuiTextField<'a> { line_buffer.set_pos(char_idx); let terminal = backend.terminal_mut(); - - terminal.show_cursor(); + let _ = terminal.show_cursor(); loop { terminal @@ -190,7 +189,7 @@ impl<'a> TuiTextField<'a> { Key::Up => {} Key::Down => {} Key::Esc => { - terminal.hide_cursor(); + let _ = terminal.hide_cursor(); return None; } Key::Char('\t') => { @@ -243,7 +242,7 @@ impl<'a> TuiTextField<'a> { }; } } - terminal.hide_cursor(); + let _ = terminal.hide_cursor(); if line_buffer.as_str().is_empty() { None diff --git a/src/ui/widgets/tui_topbar.rs b/src/ui/widgets/tui_topbar.rs index aef32ed..a73c911 100644 --- a/src/ui/widgets/tui_topbar.rs +++ b/src/ui/widgets/tui_topbar.rs @@ -42,7 +42,12 @@ impl<'a> Widget for TuiTopBar<'a> { None => {} } } - if self.context.display_options_ref().tilde_in_titlebar() { + if self + .context + .config_ref() + .display_options_ref() + .tilde_in_titlebar() + { if let Some(home_dir) = HOME_DIR.as_ref() { let home_dir_str = home_dir.to_string_lossy().into_owned(); curr_path_str = curr_path_str.replace(&home_dir_str, "~"); diff --git a/src/util/format.rs b/src/util/format.rs index b22d200..cd73605 100644 --- a/src/util/format.rs +++ b/src/util/format.rs @@ -1,7 +1,5 @@ use std::time; -use crate::util::unix; - pub fn file_size_to_string(file_size: u64) -> String { const FILE_UNITS: [&str; 6] = ["B", "K", "M", "G", "T", "E"]; const CONV_RATE: f64 = 1024.0; diff --git a/src/util/input.rs b/src/util/input.rs index d33b419..6944873 100644 --- a/src/util/input.rs +++ b/src/util/input.rs @@ -13,7 +13,7 @@ use crate::util::format; pub fn process_mouse(event: MouseEvent, context: &mut AppContext, backend: &mut ui::TuiBackend) { let f_size = backend.terminal.as_ref().unwrap().size().unwrap(); - let constraints: &[Constraint; 3] = &context.display_options_ref().default_layout; + let constraints: &[Constraint; 3] = &context.config_ref().display_options_ref().default_layout; let layout_rect = Layout::default() .direction(Direction::Horizontal) .vertical_margin(1) @@ -112,7 +112,7 @@ pub fn process_worker_progress(context: &mut AppContext, res: IoWorkerProgress) pub fn process_finished_worker(context: &mut AppContext, res: std::io::Result<IoWorkerProgress>) { let observer = context.remove_job().unwrap(); - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); for tab in context.tab_context_mut().iter_mut() { let _ = tab.history_mut().reload(observer.dest_path(), &options); let _ = tab.history_mut().reload(observer.src_path(), &options); diff --git a/src/util/load_child.rs b/src/util/load_child.rs index e990cf3..63fb1f2 100644 --- a/src/util/load_child.rs +++ b/src/util/load_child.rs @@ -18,7 +18,7 @@ impl LoadChild { // get preview if let Some(path) = path { if path.is_dir() { - let options = context.display_options_ref().clone(); + let options = context.config_ref().display_options_ref().clone(); context .tab_context_mut() .curr_tab_mut() |