summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-02-26 02:38:32 +0100
committerrabite <rabite@posteo.de>2019-02-26 02:38:32 +0100
commitd0029949ea1d137525564ce3eb5dae3f18ea011e (patch)
tree797e12a211bf52ed250bce70cfe1cf5b3cb07b1c
parent16018ff604dac94def84dcd8db396853506e3d74 (diff)
actually usable multi-selection
-rw-r--r--src/file_browser.rs9
-rw-r--r--src/files.rs2
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<File>) -> 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::<String>();
- 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<File>,