Feat: ability to rename steps
This commit is contained in:
45
src/input.rs
45
src/input.rs
@@ -324,6 +324,34 @@ fn handle_modal_input(ctx: &mut InputContext, key: KeyEvent) -> InputResult {
|
||||
KeyCode::Char(c) => name.push(c),
|
||||
_ => {}
|
||||
},
|
||||
Modal::RenameStep {
|
||||
bank,
|
||||
pattern,
|
||||
step,
|
||||
name,
|
||||
} => match key.code {
|
||||
KeyCode::Enter => {
|
||||
let (bank_idx, pattern_idx, step_idx) = (*bank, *pattern, *step);
|
||||
let new_name = if name.trim().is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(name.clone())
|
||||
};
|
||||
ctx.dispatch(AppCommand::RenameStep {
|
||||
bank: bank_idx,
|
||||
pattern: pattern_idx,
|
||||
step: step_idx,
|
||||
name: new_name,
|
||||
});
|
||||
ctx.dispatch(AppCommand::CloseModal);
|
||||
}
|
||||
KeyCode::Esc => ctx.dispatch(AppCommand::CloseModal),
|
||||
KeyCode::Backspace => {
|
||||
name.pop();
|
||||
}
|
||||
KeyCode::Char(c) => name.push(c),
|
||||
_ => {}
|
||||
},
|
||||
Modal::SetPattern { field, input } => match key.code {
|
||||
KeyCode::Enter => {
|
||||
let field = *field;
|
||||
@@ -871,6 +899,23 @@ fn handle_main_page(ctx: &mut InputContext, key: KeyEvent, ctrl: bool) -> InputR
|
||||
}));
|
||||
}
|
||||
}
|
||||
KeyCode::Char('r') => {
|
||||
let (bank, pattern, step) = (
|
||||
ctx.app.editor_ctx.bank,
|
||||
ctx.app.editor_ctx.pattern,
|
||||
ctx.app.editor_ctx.step,
|
||||
);
|
||||
let current_name = ctx.app.current_edit_pattern()
|
||||
.step(step)
|
||||
.and_then(|s| s.name.clone())
|
||||
.unwrap_or_default();
|
||||
ctx.dispatch(AppCommand::OpenModal(Modal::RenameStep {
|
||||
bank,
|
||||
pattern,
|
||||
step,
|
||||
name: current_name,
|
||||
}));
|
||||
}
|
||||
KeyCode::Char('?') => {
|
||||
ctx.dispatch(AppCommand::OpenModal(Modal::KeybindingsHelp { scroll: 0 }));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user