diff options
author | rabite <rabite@posteo.de> | 2019-04-02 22:56:22 +0200 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-04-02 22:56:22 +0200 |
commit | 04285257caa823ac83413a7f38534108f6492c4e (patch) | |
tree | 6e60464071f7fd6e1417d3ebd354125a4c72cf91 | |
parent | e99a3d993cc401720dc5f1c649cd3436fb47d3b3 (diff) |
turbo cd repaired
-rw-r--r-- | src/file_browser.rs | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs index 2c94219..19c230f 100644 --- a/src/file_browser.rs +++ b/src/file_browser.rs @@ -795,36 +795,12 @@ impl FileBrowser { } pub fn turbo_cd(&mut self) -> HResult<()> { - let dir = self.minibuffer("cd"); - - match dir { - Ok(dir) => { - self.columns.widgets.clear(); - let cwd = File::new_from_path(&std::path::PathBuf::from(&dir), None)?; - self.cwd = cwd; - let dir = std::path::PathBuf::from(&dir); - let left_dir = std::path::PathBuf::from(&dir); - let mcore = self.main_widget()?.get_core()?.clone(); - let lcore = self.left_widget()?.get_core()?.clone();; - - let middle = AsyncWidget::new(&self.core, Box::new(move |_| { - let files = Files::new_from_path(&dir.clone())?; - let listview = ListView::new(&mcore, files); - Ok(listview) - })); - let middle = FileBrowserWidgets::FileList(middle); + let dir = self.minibuffer("cd")?; + + let path = std::path::PathBuf::from(&dir); + let dir = File::new_from_path(&path.canonicalize()?, None)?; + self.main_widget_goto(&dir)?; - let left = AsyncWidget::new(&self.core, Box::new(move |_| { - let files = Files::new_from_path(&left_dir.parent()?)?; - let listview = ListView::new(&lcore, files); - Ok(listview) - })); - let left = FileBrowserWidgets::FileList(left); - self.columns.push_widget(left); - self.columns.push_widget(middle); - }, - Err(_) => {} - } Ok(()) } |