diff --git a/src/ui/activities/filetransfer/actions/find.rs b/src/ui/activities/filetransfer/actions/find.rs index 291c4f6..297a3da 100644 --- a/src/ui/activities/filetransfer/actions/find.rs +++ b/src/ui/activities/filetransfer/actions/find.rs @@ -91,7 +91,22 @@ impl FileTransferActivity { } // Iter files for entry in entries.iter() { - self.filetransfer_recv(&entry.get_realfile(), dest_path.as_path(), None); + match self.browser.tab() { + FileExplorerTab::FindLocal | FileExplorerTab::Local => { + self.filetransfer_send( + &entry.get_realfile(), + dest_path.as_path(), + None, + ); + } + FileExplorerTab::FindRemote | FileExplorerTab::Remote => { + self.filetransfer_recv( + &entry.get_realfile(), + dest_path.as_path(), + None, + ); + } + } } } SelectedEntry::None => {} diff --git a/src/ui/activities/filetransfer/actions/mod.rs b/src/ui/activities/filetransfer/actions/mod.rs index ef4a39d..3dc9139 100644 --- a/src/ui/activities/filetransfer/actions/mod.rs +++ b/src/ui/activities/filetransfer/actions/mod.rs @@ -130,11 +130,6 @@ impl FileTransferActivity { // -- private fn get_selected_index(&self, component: &str) -> SelectedEntryIndex { - eprintln!( - "INDEX FOR {}: {:?}", - component, - self.view.get_state(component) - ); match self.view.get_state(component) { Some(Payload::One(Value::Usize(idx))) => SelectedEntryIndex::One(idx), Some(Payload::Vec(files)) => { diff --git a/src/ui/activities/filetransfer/update.rs b/src/ui/activities/filetransfer/update.rs index 26e4316..4c3f156 100644 --- a/src/ui/activities/filetransfer/update.rs +++ b/src/ui/activities/filetransfer/update.rs @@ -546,14 +546,25 @@ impl FileTransferActivity { FileExplorerTab::Remote => self.action_remote_delete(), FileExplorerTab::FindLocal | FileExplorerTab::FindRemote => { // Get entry - if let Some(Payload::One(Value::Usize(idx))) = - self.view.get_state(COMPONENT_EXPLORER_FIND) - { - self.action_find_delete(); - // Reload entries - self.found_mut().unwrap().del_entry(idx); - self.update_find_list(); + self.action_find_delete(); + // Delete entries + match self.view.get_state(COMPONENT_EXPLORER_FIND) { + Some(Payload::One(Value::Usize(idx))) => { + // Reload entries + self.found_mut().unwrap().del_entry(idx); + } + Some(Payload::Vec(values)) => { + values + .iter() + .map(|x| match x { + Value::Usize(v) => *v, + _ => 0, + }) + .for_each(|x| self.found_mut().unwrap().del_entry(x)); + } + _ => {} } + self.update_find_list(); } } self.umount_radio_delete(); diff --git a/src/ui/activities/filetransfer/view.rs b/src/ui/activities/filetransfer/view.rs index bee6c03..48884ca 100644 --- a/src/ui/activities/filetransfer/view.rs +++ b/src/ui/activities/filetransfer/view.rs @@ -975,6 +975,14 @@ impl FileTransferActivity { ) .add_col(TextSpan::from(" Reload directory content")) .add_row() + .add_col( + TextSpanBuilder::new("") + .bold() + .with_foreground(Color::Cyan) + .build(), + ) + .add_col(TextSpan::from(" Select file")) + .add_row() .add_col( TextSpanBuilder::new("") .bold() @@ -1047,6 +1055,14 @@ impl FileTransferActivity { ) .add_col(TextSpan::from(" Delete selected file")) .add_row() + .add_col( + TextSpanBuilder::new("") + .bold() + .with_foreground(Color::Cyan) + .build(), + ) + .add_col(TextSpan::from(" Select all files")) + .add_row() .add_col( TextSpanBuilder::new("") .bold()