From ee9595bae8cb7944e10a4d7484270398a21ca715 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 5 Dec 2021 18:01:52 -0500 Subject: n to repeat last search --- src/bin/ttyplay/display.rs | 54 ++++++++++++++++++++++++---------------------- src/bin/ttyplay/input.rs | 9 ++++++++ 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/bin/ttyplay/display.rs b/src/bin/ttyplay/display.rs index 72094f4..7572936 100644 --- a/src/bin/ttyplay/display.rs +++ b/src/bin/ttyplay/display.rs @@ -126,32 +126,34 @@ impl Display { output.set_fgcolor(textmode::color::BLACK); output.set_bgcolor(textmode::color::CYAN); - output.move_to(size.0 - 14, size.1 - 23); - output.write_str(" keys "); - output.move_to(size.0 - 13, size.1 - 23); - output.write_str(" q: quit "); - output.move_to(size.0 - 12, size.1 - 23); - output.write_str(" space: pause/unpause "); - output.move_to(size.0 - 11, size.1 - 23); - output.write_str(" tab: hide/show ui "); - output.move_to(size.0 - 10, size.1 - 23); - output.write_str(" h: previous fram "); - output.move_to(size.0 - 9, size.1 - 23); - output.write_str(" l: next frame "); - output.move_to(size.0 - 8, size.1 - 23); - output.write_str(" 0: first frame "); - output.move_to(size.0 - 7, size.1 - 23); - output.write_str(" $: last frame "); - output.move_to(size.0 - 6, size.1 - 23); - output.write_str(" +: increase speed "); - output.move_to(size.0 - 5, size.1 - 23); - output.write_str(" -: decrease speed "); - output.move_to(size.0 - 4, size.1 - 23); - output.write_str(" =: normal speed "); - output.move_to(size.0 - 3, size.1 - 23); - output.write_str(" /: search "); - output.move_to(size.0 - 2, size.1 - 23); - output.write_str(" ?: hide/show help "); + output.move_to(size.0 - 15, size.1 - 27); + output.write_str(" keys "); + output.move_to(size.0 - 14, size.1 - 27); + output.write_str(" q: quit "); + output.move_to(size.0 - 13, size.1 - 27); + output.write_str(" space: pause/unpause "); + output.move_to(size.0 - 12, size.1 - 27); + output.write_str(" tab: hide/show ui "); + output.move_to(size.0 - 11, size.1 - 27); + output.write_str(" h: previous fram "); + output.move_to(size.0 - 10, size.1 - 27); + output.write_str(" l: next frame "); + output.move_to(size.0 - 9, size.1 - 27); + output.write_str(" 0: first frame "); + output.move_to(size.0 - 8, size.1 - 27); + output.write_str(" $: last frame "); + output.move_to(size.0 - 7, size.1 - 27); + output.write_str(" +: increase speed "); + output.move_to(size.0 - 6, size.1 - 27); + output.write_str(" -: decrease speed "); + output.move_to(size.0 - 5, size.1 - 27); + output.write_str(" =: normal speed "); + output.move_to(size.0 - 4, size.1 - 27); + output.write_str(" /: search "); + output.move_to(size.0 - 3, size.1 - 27); + output.write_str(" n: repeat last search "); + output.move_to(size.0 - 2, size.1 - 27); + output.write_str(" ?: hide/show help "); } fn render_search(&self, output: &mut textmode::Output) { diff --git a/src/bin/ttyplay/input.rs b/src/bin/ttyplay/input.rs index 6f394f5..e953f6d 100644 --- a/src/bin/ttyplay/input.rs +++ b/src/bin/ttyplay/input.rs @@ -4,6 +4,7 @@ pub fn spawn_task( ) { async_std::task::spawn(async move { let mut search: Option = None; + let mut prev_search = None; while let Some(key) = input.read_key().await.unwrap() { if let Some(ref mut search_contents) = search { match key { @@ -32,6 +33,7 @@ pub fn spawn_task( )) .await .unwrap(); + prev_search = search; search = None; } textmode::Key::Escape => { @@ -96,6 +98,13 @@ pub fn spawn_task( search = Some("".to_string()); crate::event::Event::ActiveSearch("".to_string()) } + textmode::Key::Char('n') => { + if let Some(ref search) = prev_search { + crate::event::Event::RunSearch(search.clone()) + } else { + continue; + } + } _ => continue, }; event_w.send(event).await.unwrap(); -- cgit v1.2.3-54-g00ecf