mirror of https://github.com/bobwen-dev/hunter
turbo cd back (minibuffer broken though)
This commit is contained in:
parent
6c305d3d61
commit
a6c147442c
|
@ -149,17 +149,8 @@ impl FileBrowser {
|
||||||
self.columns.pop_widget();
|
self.columns.pop_widget();
|
||||||
|
|
||||||
// Make sure there's a directory on the left unless it's /
|
// Make sure there's a directory on the left unless it's /
|
||||||
if self.left_widget().is_err() {
|
self.fix_left()?;
|
||||||
let file = self.selected_file()?.clone();
|
|
||||||
if let Some(grand_parent) = file.grand_parent() {
|
|
||||||
let mut left_view = WillBeWidget::new(Box::new(move |_| {
|
|
||||||
let mut view
|
|
||||||
= ListView::new(Files::new_from_path(&grand_parent)?);
|
|
||||||
Ok(view)
|
|
||||||
}));
|
|
||||||
self.columns.prepend_widget(left_view);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
self.columns.refresh();
|
self.columns.refresh();
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -177,6 +168,21 @@ impl FileBrowser {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn fix_left(&mut self) -> HResult<()> {
|
||||||
|
if self.left_widget().is_err() {
|
||||||
|
let file = self.selected_file()?.clone();
|
||||||
|
if let Some(grand_parent) = file.grand_parent() {
|
||||||
|
let mut left_view = WillBeWidget::new(Box::new(move |_| {
|
||||||
|
let mut view
|
||||||
|
= ListView::new(Files::new_from_path(&grand_parent)?);
|
||||||
|
Ok(view)
|
||||||
|
}));
|
||||||
|
self.columns.prepend_widget(left_view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn cwd(&self) -> HResult<File> {
|
pub fn cwd(&self) -> HResult<File> {
|
||||||
let widget = self.columns.get_main_widget()?.widget()?;
|
let widget = self.columns.get_main_widget()?.widget()?;
|
||||||
let cwd = (*widget.lock()?).as_ref()?.content.directory.clone();
|
let cwd = (*widget.lock()?).as_ref()?.content.directory.clone();
|
||||||
|
@ -222,31 +228,24 @@ impl FileBrowser {
|
||||||
self.columns.get_main_widget_mut().unwrap().animate_slide_up();
|
self.columns.get_main_widget_mut().unwrap().animate_slide_up();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn turbo_cd(&mut self) {
|
pub fn turbo_cd(&mut self) -> HResult<()> {
|
||||||
let dir = self.minibuffer("cd: ");
|
let dir = self.minibuffer("cd: ");
|
||||||
|
|
||||||
// match dir {
|
match dir {
|
||||||
// Some(dir) => {
|
Some(dir) => {
|
||||||
// Files::new_from_path(&std::path::PathBuf::from(&dir)).and_then(|files| {
|
self.columns.widgets.widgets.clear();
|
||||||
// let cwd = files.directory.clone();
|
let cwd = File::new_from_path(&std::path::PathBuf::from(&dir))?;
|
||||||
// self.columns.widgets.widgets.clear();
|
self.cwd = cwd;
|
||||||
// self.columns.push_widget(ListView::new(files));
|
let middle = WillBeWidget::new(Box::new(move |_| {
|
||||||
|
let files = Files::new_from_path(&std::path::PathBuf::from(&dir))?;
|
||||||
// std::env::set_current_dir(&cwd.path).unwrap();
|
let listview = ListView::new(files);
|
||||||
|
Ok(listview)
|
||||||
// if let Some(grand_parent) = cwd.path.parent() {
|
}));
|
||||||
// let left_view =
|
self.columns.push_widget(middle);
|
||||||
// ListView::new(Files::new_from_path(&grand_parent).unwrap());
|
},
|
||||||
// self.columns.prepend_widget(left_view);
|
None => {}
|
||||||
// }
|
}
|
||||||
// self.fix_selection();
|
Ok(())
|
||||||
// self.update_preview();
|
|
||||||
// self.refresh();
|
|
||||||
// self.columns.refresh();
|
|
||||||
// Ok(())
|
|
||||||
// }).ok();
|
|
||||||
// } None => {}
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,7 +315,7 @@ impl Widget for FileBrowser {
|
||||||
|
|
||||||
fn on_key(&mut self, key: Key) {
|
fn on_key(&mut self, key: Key) {
|
||||||
match key {
|
match key {
|
||||||
Key::Char('/') => self.turbo_cd(),
|
Key::Char('/') => { self.turbo_cd(); },
|
||||||
Key::Char('Q') => { self.quit_with_dir(); },
|
Key::Char('Q') => { self.quit_with_dir(); },
|
||||||
Key::Right | Key::Char('f') => { self.enter_dir(); },
|
Key::Right | Key::Char('f') => { self.enter_dir(); },
|
||||||
Key::Left | Key::Char('b') => { self.go_back(); },
|
Key::Left | Key::Char('b') => { self.go_back(); },
|
||||||
|
|
Loading…
Reference in New Issue