summaryrefslogtreecommitdiffstats
path: root/src/commands/open_file.rs
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2020-08-29 22:06:19 -0400
committerJiayi Zhao <jeff.no.zhao@gmail.com>2020-08-29 22:08:23 -0400
commit5be4a5f472655a76e1430bad09a19f6ad111e474 (patch)
tree1fcffa6c8d37cc6d538b29b6fbd773e8de58512d /src/commands/open_file.rs
parent4f3842b56f1729dcd8e81c77f98253ed9dfb23b3 (diff)
big rework and dependency update
- abstract JoshutoContext implementation behind functions - rework io workers in an attempt to fix a bug - update dependencies - remove JoshutoContextWorker
Diffstat (limited to 'src/commands/open_file.rs')
-rw-r--r--src/commands/open_file.rs44
1 files changed, 20 insertions, 24 deletions
diff --git a/src/commands/open_file.rs b/src/commands/open_file.rs
index f7af489..94e14dd 100644
--- a/src/commands/open_file.rs
+++ b/src/commands/open_file.rs
@@ -44,26 +44,23 @@ impl OpenFile {
let mut dirpath = None;
let mut selected_entries = None;
- {
- let curr_tab = context.curr_tab_ref();
- match curr_tab.curr_list_ref() {
- None => return Ok(()),
- Some(curr_list) => match curr_list.get_curr_ref() {
- Some(entry) if entry.file_path().is_dir() => {
- let path = entry.file_path().clone();
- dirpath = Some(path);
- }
- Some(entry) => {
- let vec: Vec<&JoshutoDirEntry> = curr_list.selected_entries().collect();
- if vec.is_empty() {
- selected_entries = Some(vec![entry]);
- } else {
- selected_entries = Some(vec);
- }
+ match context.tab_context_ref().curr_tab_ref().curr_list_ref() {
+ None => return Ok(()),
+ Some(curr_list) => match curr_list.get_curr_ref() {
+ Some(entry) if entry.file_path().is_dir() => {
+ let path = entry.file_path().to_path_buf();
+ dirpath = Some(path);
+ }
+ Some(entry) => {
+ let vec: Vec<&JoshutoDirEntry> = curr_list.selected_entries().collect();
+ if vec.is_empty() {
+ selected_entries = Some(vec![entry]);
+ } else {
+ selected_entries = Some(vec);
}
- None => return Ok(()),
- },
- }
+ }
+ None => return Ok(()),
+ },
}
if let Some(path) = dirpath {
@@ -134,11 +131,11 @@ impl OpenFileWith {
let menu_options_str: Vec<&str> = menu_options.iter().map(|e| e.as_str()).collect();
let menu_widget = TuiMenu::new(&menu_options_str);
- let mut textfield = TuiTextField::default()
+ TuiTextField::default()
.prompt(":")
.prefix(PROMPT)
- .menu(menu_widget);
- textfield.get_input(backend, &context)
+ .menu(menu_widget)
+ .get_input(backend, &context)
};
let entry_paths: Vec<&str> = entries.iter().map(|e| e.file_name()).collect();
@@ -194,8 +191,7 @@ impl std::fmt::Display for OpenFileWith {
impl JoshutoRunnable for OpenFileWith {
fn execute(&self, context: &mut JoshutoContext, backend: &mut TuiBackend) -> JoshutoResult<()> {
let selected_entries = {
- let curr_tab = context.curr_tab_ref();
- match curr_tab.curr_list_ref() {
+ match context.tab_context_ref().curr_tab_ref().curr_list_ref() {
None => vec![],
Some(curr_list) => match curr_list.get_curr_ref() {
Some(entry) => {