aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-12-05 18:01:52 -0500
committerJesse Luehrs <doy@tozt.net>2021-12-05 18:01:52 -0500
commitee9595bae8cb7944e10a4d7484270398a21ca715 (patch)
treeee4612ce75908bdf9f0d0995e50577f3bf730e81
parent83814cf6ef67834032439ac47c7c20c1f2143e06 (diff)
downloadttyrec-bin-ee9595bae8cb7944e10a4d7484270398a21ca715.tar.gz
ttyrec-bin-ee9595bae8cb7944e10a4d7484270398a21ca715.zip
n to repeat last search
-rw-r--r--src/bin/ttyplay/display.rs54
-rw-r--r--src/bin/ttyplay/input.rs9
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<String> = 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();