summaryrefslogtreecommitdiffstats
path: root/src/file_browser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r--src/file_browser.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs
index ad15d01..b8d15dd 100644
--- a/src/file_browser.rs
+++ b/src/file_browser.rs
@@ -468,6 +468,7 @@ impl FileBrowser {
cmd: OsString::from(file.strip_prefix(&cwd)),
short_cmd: None,
args: None,
+ vars: None,
cwd: cwd.clone(),
cwd_files: None,
tab_files: None,
@@ -1084,6 +1085,7 @@ impl FileBrowser {
cmd: OsString::from(cmd),
short_cmd: None,
args: None,
+ vars: None,
cwd: cwd,
cwd_files: cwd_files,
tab_files: Some(tab_files),
@@ -1135,6 +1137,22 @@ impl FileBrowser {
Ok(())
}
+ pub fn quick_action(&self) -> HResult<()> {
+ let files = self.selected_files()?;
+ let files = if files.len() > 0 { files }
+ else { vec![self.selected_file()?.clone()] };
+
+ let sender = self.core.get_sender();
+ let core = self.preview_widget()?.get_core()?.clone();
+ let proc_view = self.proc_view.clone();
+
+ crate::quick_actions::open(files,
+ sender,
+ core,
+ proc_view)?;
+ Ok(())
+ }
+
pub fn get_footer(&self) -> HResult<String> {
let xsize = self.get_coordinates()?.xsize();
let ypos = self.get_coordinates()?.position().y();
@@ -1263,6 +1281,7 @@ impl Widget for FileBrowser {
fn on_key(&mut self, key: Key) -> HResult<()> {
match key {
+ Key::Char('a') => self.quick_action()?,
Key::Char(']') => self.move_down_left_widget()?,
Key::Char('[') => self.move_up_left_widget()?,
Key::Alt(' ') => self.external_select()?,