Feat: tweak and fix from last night workshop

This commit is contained in:
2026-02-04 09:37:29 +01:00
parent bbbd8ff64a
commit c95c82169f
9 changed files with 151 additions and 65 deletions

View File

@@ -285,6 +285,7 @@ fn render_patterns(frame: &mut Frame, app: &App, snapshot: &SequencerSnapshot, a
// Staged mute/solo (will toggle on commit)
let has_staged_mute = app.playback.has_staged_mute(bank, idx);
let has_staged_solo = app.playback.has_staged_solo(bank, idx);
let has_staged_props = app.playback.has_staged_props(bank, idx);
// Preview state (what it will be after commit)
let preview_muted = is_muted ^ has_staged_mute;
@@ -386,13 +387,14 @@ fn render_patterns(frame: &mut Frame, app: &App, snapshot: &SequencerSnapshot, a
spans.push(Span::styled(format!(" {name}"), name_style));
}
// Right-aligned info: length and speed
// Right-aligned info: length, speed, and staged props indicator
let speed_str = if speed != PatternSpeed::NORMAL {
format!(" {}", speed.label())
} else {
String::new()
};
let right_info = format!("{length}{speed_str}");
let props_indicator = if has_staged_props { "~" } else { "" };
let right_info = format!("{props_indicator}{length}{speed_str}");
let left_width: usize = spans.iter().map(|s| s.content.chars().count()).sum();
let right_width = right_info.chars().count();
let padding = (text_area.width as usize).saturating_sub(left_width + right_width + 1);