Support annotations

This commit is contained in:
Dheepak Krishnamurthy 2020-08-10 00:46:04 -06:00
parent 28ea95d602
commit 73ffc9d026
2 changed files with 90 additions and 1 deletions

View file

@ -117,6 +117,10 @@ fn tui_main(_config: &str) -> Result<(), Box<dyn Error>> {
app.mode = AppMode::AddTask;
app.cursor_location = app.command.chars().count();
}
Key::Char('A') => {
app.mode = AppMode::AnnotateTask;
app.cursor_location = app.command.chars().count();
}
Key::Char('?') => {
app.mode = AppMode::HelpPopup;
}
@ -218,6 +222,49 @@ fn tui_main(_config: &str) -> Result<(), Box<dyn Error>> {
}
_ => {}
},
AppMode::AnnotateTask => match input {
Key::Char('\n') => match app.task_annotate() {
Ok(_) => {
app.mode = AppMode::Report;
app.update();
}
Err(e) => {
app.mode = AppMode::TaskError;
app.error = e;
}
},
Key::Esc => {
app.command = "".to_string();
app.mode = AppMode::Report;
}
Key::Right => {
if app.cursor_location < app.command.chars().count() {
app.cursor_location += 1;
}
}
Key::Left => {
if app.cursor_location > 0 {
app.cursor_location -= 1;
}
}
Key::Char(c) => {
if app.cursor_location < app.command.chars().count() {
app.command.insert_str(app.cursor_location, &c.to_string());
} else {
app.command.push(c);
}
app.cursor_location += 1;
}
Key::Backspace => {
if app.cursor_location > 0 {
app.cursor_location -= 1;
let mut cs = app.command.chars().collect::<Vec<char>>();
cs.remove(app.cursor_location);
app.command = cs.into_iter().collect();
}
}
_ => {}
},
AppMode::AddTask => match input {
Key::Char('\n') => match app.task_add() {
Ok(_) => {