diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2020-09-19 21:21:33 -0400 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2020-09-19 21:21:33 -0400 |
commit | 7b4c611ed4d804bd52aeda0a619a54bea9b1e13d (patch) | |
tree | 7ba31fff7d5de171aadfc32c67f81dd64428b3ba /src/commands/reload.rs | |
parent | 7741d4d2c8798ad0bb609e97fb3bda86c5318a36 (diff) |
Change command to use an enum instead of polymorphism
Diffstat (limited to 'src/commands/reload.rs')
-rw-r--r-- | src/commands/reload.rs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/commands/reload.rs b/src/commands/reload.rs new file mode 100644 index 0000000..b05d538 --- /dev/null +++ b/src/commands/reload.rs @@ -0,0 +1,47 @@ +use crate::context::JoshutoContext; +use crate::error::JoshutoResult; +use crate::util::load_child::LoadChild; + +pub fn soft_reload(index: usize, context: &mut JoshutoContext) -> std::io::Result<()> { + let sort_option = context.config_t.sort_option.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() { + curr_list.reload_contents(&sort_option)?; + } + } + if let Some(curr_list) = curr_tab.parent_list_mut() { + if curr_list.need_update() { + curr_list.reload_contents(&sort_option)?; + } + } + if let Some(curr_list) = curr_tab.child_list_mut() { + if curr_list.need_update() { + curr_list.reload_contents(&sort_option)?; + } + } + } + Ok(()) +} + +pub fn reload(context: &mut JoshutoContext, index: usize) -> std::io::Result<()> { + let sort_option = context.config_t.sort_option.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(&sort_option)?; + } + if let Some(curr_list) = curr_tab.parent_list_mut() { + curr_list.reload_contents(&sort_option)?; + } + if let Some(curr_list) = curr_tab.child_list_mut() { + curr_list.reload_contents(&sort_option)?; + } + } + Ok(()) +} + +pub fn reload_dirlist(context: &mut JoshutoContext) -> JoshutoResult<()> { + reload(context, context.tab_context_ref().get_index())?; + LoadChild::load_child(context)?; + Ok(()) +} |