summaryrefslogtreecommitdiffstats
path: root/src/commands/reload.rs
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2020-09-19 21:21:33 -0400
committerJiayi Zhao <jeff.no.zhao@gmail.com>2020-09-19 21:21:33 -0400
commit7b4c611ed4d804bd52aeda0a619a54bea9b1e13d (patch)
tree7ba31fff7d5de171aadfc32c67f81dd64428b3ba /src/commands/reload.rs
parent7741d4d2c8798ad0bb609e97fb3bda86c5318a36 (diff)
Change command to use an enum instead of polymorphism
Diffstat (limited to 'src/commands/reload.rs')
-rw-r--r--src/commands/reload.rs47
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(())
+}