Feat: entretien de la codebase

This commit is contained in:
2026-02-09 21:12:49 +01:00
parent a5f17687f1
commit 869d3af244
25 changed files with 847 additions and 878 deletions

View File

@@ -2,56 +2,61 @@ use crate::model::{LaunchQuantization, PatternSpeed, SyncMode};
use crate::state::editor::{EuclideanField, PatternField, PatternPropsField};
use crate::state::file_browser::FileBrowserState;
#[derive(Clone, PartialEq, Eq)]
pub enum ConfirmAction {
Quit,
DeleteStep { bank: usize, pattern: usize, step: usize },
DeleteSteps { bank: usize, pattern: usize, steps: Vec<usize> },
ResetPattern { bank: usize, pattern: usize },
ResetBank { bank: usize },
ResetPatterns { bank: usize, patterns: Vec<usize> },
ResetBanks { banks: Vec<usize> },
}
impl ConfirmAction {
pub fn message(&self) -> String {
match self {
Self::Quit => "Quit?".into(),
Self::DeleteStep { step, .. } => format!("Delete step {}?", step + 1),
Self::DeleteSteps { steps, .. } => {
let nums: Vec<String> = steps.iter().map(|s| format!("{:02}", s + 1)).collect();
format!("Delete steps {}?", nums.join(", "))
}
Self::ResetPattern { pattern, .. } => format!("Reset pattern {}?", pattern + 1),
Self::ResetBank { bank } => format!("Reset bank {}?", bank + 1),
Self::ResetPatterns { patterns, .. } => format!("Reset {} patterns?", patterns.len()),
Self::ResetBanks { banks } => format!("Reset {} banks?", banks.len()),
}
}
}
#[derive(Clone, PartialEq, Eq)]
pub enum RenameTarget {
Bank { bank: usize },
Pattern { bank: usize, pattern: usize },
Step { bank: usize, pattern: usize, step: usize },
}
impl RenameTarget {
pub fn title(&self) -> String {
match self {
Self::Bank { bank } => format!("Rename Bank {:02}", bank + 1),
Self::Pattern { bank, pattern } => format!("Rename B{:02}:P{:02}", bank + 1, pattern + 1),
Self::Step { step, .. } => format!("Name Step {:02}", step + 1),
}
}
}
#[derive(Clone, PartialEq, Eq)]
pub enum Modal {
None,
ConfirmQuit {
selected: bool,
},
ConfirmDeleteStep {
bank: usize,
pattern: usize,
step: usize,
selected: bool,
},
ConfirmDeleteSteps {
bank: usize,
pattern: usize,
steps: Vec<usize>,
selected: bool,
},
ConfirmResetPattern {
bank: usize,
pattern: usize,
selected: bool,
},
ConfirmResetBank {
bank: usize,
selected: bool,
},
ConfirmResetPatterns {
bank: usize,
patterns: Vec<usize>,
selected: bool,
},
ConfirmResetBanks {
banks: Vec<usize>,
Confirm {
action: ConfirmAction,
selected: bool,
},
FileBrowser(Box<FileBrowserState>),
RenameBank {
bank: usize,
name: String,
},
RenamePattern {
bank: usize,
pattern: usize,
name: String,
},
RenameStep {
bank: usize,
pattern: usize,
step: usize,
Rename {
target: RenameTarget,
name: String,
},
SetPattern {