summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2020-02-17 21:36:45 -0500
committerJiayi Zhao <jeff.no.zhao@gmail.com>2020-02-17 21:36:45 -0500
commite7bcdd1fc7685e1f132adc267e56cdae2925d632 (patch)
tree2f1a5352d67a788dfc90a9c966bd20379aa9d293
parent686033bfcf6d34bfb180e0b0f64ae4493340bf38 (diff)
reload_dir now reloads parent and child as well
-rw-r--r--src/commands/reload_dir.rs9
-rw-r--r--src/tab.rs10
2 files changed, 19 insertions, 0 deletions
diff --git a/src/commands/reload_dir.rs b/src/commands/reload_dir.rs
index ac8d72d..eef3a3f 100644
--- a/src/commands/reload_dir.rs
+++ b/src/commands/reload_dir.rs
@@ -17,10 +17,19 @@ impl ReloadDirList {
pub fn reload(index: usize, context: &mut JoshutoContext) -> std::io::Result<()> {
let curr_tab = &mut context.tabs[index];
let sort_option = &context.config_t.sort_option;
+
match curr_tab.curr_list_mut() {
Some(curr_list) => curr_list.reload_contents(sort_option)?,
None => {},
}
+ match curr_tab.parent_list_mut() {
+ Some(curr_list) => curr_list.reload_contents(sort_option)?,
+ None => {},
+ }
+ match curr_tab.child_list_mut() {
+ Some(curr_list) => curr_list.reload_contents(sort_option)?,
+ None => {},
+ }
Ok(())
}
diff --git a/src/tab.rs b/src/tab.rs
index 08bf0ee..0bf9138 100644
--- a/src/tab.rs
+++ b/src/tab.rs
@@ -45,4 +45,14 @@ impl JoshutoTab {
let parent = self.curr_path.parent()?;
self.history.get_mut(parent)
}
+
+ pub fn child_list_mut(&mut self) -> Option<&mut JoshutoDirList> {
+ let path = {
+ let curr_list = self.curr_list_ref()?;
+ let index = curr_list.index?;
+ curr_list.contents[index].file_path().clone()
+ };
+
+ self.history.get_mut(path.as_path())
+ }
}