vastly improved selection system

This commit is contained in:
2026-01-28 02:29:17 +01:00
parent 322885b908
commit c7a9f7bc5a
13 changed files with 1507 additions and 437 deletions

View File

@@ -295,13 +295,20 @@ fn render_footer(frame: &mut Frame, app: &App, area: Rect) {
} else {
let bindings: Vec<(&str, &str)> = match app.page {
Page::Main => vec![
("←→↑↓", "Navigate"),
("←→↑↓", "Nav"),
("Shift+↑↓", "Select"),
("t", "Toggle"),
("Enter", "Edit"),
("p", "Preview"),
("Space", "Play"),
("<>", "Length"),
("[]", "Speed"),
("^C", "Copy"),
("^V", "Paste"),
("^B", "Link"),
("^D", "Dup"),
("^H", "Harden"),
("Del", "Delete"),
("<>", "Len"),
("[]", "Spd"),
("+-", "Tempo"),
],
Page::Patterns => vec![
("←→↑↓", "Navigate"),
@@ -382,6 +389,12 @@ fn render_modal(frame: &mut Frame, app: &App, snapshot: &SequencerSnapshot, term
ConfirmModal::new("Confirm", &format!("Delete step {}?", step + 1), *selected)
.render_centered(frame, term);
}
Modal::ConfirmDeleteSteps { steps, selected, .. } => {
let nums: Vec<String> = steps.iter().map(|s| format!("{:02}", s + 1)).collect();
let label = format!("Delete steps {}?", nums.join(", "));
ConfirmModal::new("Confirm", &label, *selected)
.render_centered(frame, term);
}
Modal::ConfirmResetPattern {
pattern, selected, ..
} => {