From d0029949ea1d137525564ce3eb5dae3f18ea011e Mon Sep 17 00:00:00 2001 From: rabite Date: Tue, 26 Feb 2019 02:38:32 +0100 Subject: [PATCH] actually usable multi-selection --- src/file_browser.rs | 9 +++------ src/files.rs | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/file_browser.rs b/src/file_browser.rs index 3095135..cdc38b4 100644 --- a/src/file_browser.rs +++ b/src/file_browser.rs @@ -251,7 +251,8 @@ impl FileBrowser { } fn exec_cmd(&mut self, tab_dirs: Vec) -> HResult<()> { - let widget = self.left_widget()?; + let filename = self.selected_file()?.name.clone(); + let widget = self.main_widget()?; let widget = widget.lock()?; let selected_files = (*widget).as_ref()?.content.get_selected(); @@ -262,17 +263,13 @@ impl FileBrowser { self.show_status(&format!("Running: \"{}\"", &cmd)); - let filename = self.selected_file()?.name.clone(); - let mut cmd = if file_names.len() == 0 { cmd.replace("$s", &format!("{}", &filename)) } else { let args = file_names.iter().map(|f| { format!(" \"{}\" ", f) }).collect::(); - let clean_cmd = cmd.replace("$s", ""); - - clean_cmd + &args + cmd.replace("$s", &args) }; for (i, tab_dir) in tab_dirs.iter().enumerate() { diff --git a/src/files.rs b/src/files.rs index 322f99c..c7896fb 100644 --- a/src/files.rs +++ b/src/files.rs @@ -18,7 +18,7 @@ lazy_static! { static ref COLORS: LsColors = LsColors::from_env().unwrap(); } -#[derive(PartialEq, Clone)] +#[derive(PartialEq, Clone, Debug)] pub struct Files { pub directory: File, pub files: Vec,