From 658e2fa4ff558992a55526640cecc14705746f20 Mon Sep 17 00:00:00 2001 From: Carter Canedy Date: Thu, 3 Oct 2024 15:34:40 -0700 Subject: [PATCH] use command names in `FloatContent` titles Co-authored-by: Afonso Franco F. --- tui/src/floating_text.rs | 15 +++++++++------ tui/src/state.rs | 27 ++++++++++++--------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/tui/src/floating_text.rs b/tui/src/floating_text.rs index a73af622..09023d38 100644 --- a/tui/src/floating_text.rs +++ b/tui/src/floating_text.rs @@ -29,8 +29,8 @@ pub struct FloatingText { max_line_width: usize, v_scroll: usize, h_scroll: usize, - mode_title: String, frame_height: usize, + title: String, } macro_rules! style { @@ -125,7 +125,7 @@ fn get_lines_owned(s: &str) -> Vec { } impl FloatingText { - pub fn new(text: String, title: &str) -> Self { + pub fn new(text: String, title: String) -> Self { let src = get_lines(&text) .into_iter() .map(|s| s.to_string()) @@ -134,7 +134,7 @@ impl FloatingText { let max_line_width = max_width!(src); Self { src, - mode_title: title.to_string(), + title, max_line_width, v_scroll: 0, h_scroll: 0, @@ -148,6 +148,7 @@ impl FloatingText { // just apply highlights directly (max_width!(get_lines(cmd)), Some(cmd.clone())) } + Command::LocalFile { file, .. } => { // have to read from tmp dir to get cmd src let raw = std::fs::read_to_string(file) @@ -165,7 +166,7 @@ impl FloatingText { Some(Self { src, - mode_title: title, + title, max_line_width, h_scroll: 0, v_scroll: 0, @@ -201,10 +202,12 @@ impl FloatingText { impl FloatContent for FloatingText { fn top_title(&self) -> Option> { - let title_text = format!(" {} ", self.mode_title); + let title_text = format!(" {} ", self.title); + let title_line = Line::from(title_text) .centered() .style(Style::default().reversed()); + Some(title_line) } @@ -279,7 +282,7 @@ impl FloatContent for FloatingText { fn get_shortcut_list(&self) -> (&str, Box<[Shortcut]>) { ( - &self.mode_title, + &self.title, Box::new([ Shortcut::new("Scroll down", ["j", "Down"]), Shortcut::new("Scroll up", ["k", "Up"]), diff --git a/tui/src/state.rs b/tui/src/state.rs index a07bf178..e22edecb 100644 --- a/tui/src/state.rs +++ b/tui/src/state.rs @@ -640,11 +640,6 @@ impl AppState { None } - fn get_selected_description(&self) -> Option { - self.get_selected_node() - .map(|node| node.description.clone()) - } - pub fn go_to_selected_dir(&mut self) { let selected_index = self.selection.selected().unwrap_or(0); @@ -697,21 +692,20 @@ impl AppState { } fn enable_preview(&mut self) { - if let Some(list_node) = self.get_selected_node() { - let mut preview_title = "[Preview] - ".to_string(); - preview_title.push_str(list_node.name.as_str()); - if let Some(preview) = FloatingText::from_command(&list_node.command, preview_title) { + if let Some(node) = self.get_selected_node() { + let preview_title = format!("Command Preview - {}", node.name.as_str()); + if let Some(preview) = FloatingText::from_command(&node.command, preview_title) { self.spawn_float(preview, 80, 80); } } } fn enable_description(&mut self) { - if let Some(command_description) = self.get_selected_description() { - if !command_description.is_empty() { - let description = FloatingText::new(command_description, "Command Description"); - self.spawn_float(description, 80, 80); - } + if let Some(node) = self.get_selected_node() { + let desc_title = format!("Command Description - {}", &node.name); + + let description = FloatingText::new(node.description.clone(), desc_title); + self.spawn_float(description, 80, 80); } } @@ -795,7 +789,10 @@ impl AppState { fn toggle_task_list_guide(&mut self) { self.spawn_float( - FloatingText::new(ACTIONS_GUIDE.to_string(), "Important Actions Guide"), + FloatingText::new( + ACTIONS_GUIDE.to_string(), + "Important Actions Guide".to_string(), + ), 80, 80, );