arranger: populate rename modal

This commit is contained in:
🪞👃🪞 2024-08-20 14:12:57 +03:00
parent c8bdee060c
commit 8e22cb6eb5
2 changed files with 18 additions and 5 deletions

View file

@ -148,6 +148,14 @@ impl Arranger {
format!("Scene {}", self.scenes.len() + 1)
}
pub fn rename_selected (&mut self) {
self.modal = Some(Box::new(ArrangerRenameModal::new(self.selected)));
self.modal = Some(Box::new(ArrangerRenameModal::new(
self.selected,
match self.selected {
ArrangerFocus::Mix => self.name.clone(),
ArrangerFocus::Track(t) => self.tracks[t].name.clone(),
ArrangerFocus::Scene(s) => self.scenes[s].name.clone(),
ArrangerFocus::Clip(t, s) => self.tracks[t].phrases[s].read().unwrap().name.clone(),
}
)));
}
}

View file

@ -1,11 +1,11 @@
use crate::*;
/// Appears on first run (i.e. if state dir is missing).
pub struct ArrangerRenameModal(bool, ArrangerFocus);
pub struct ArrangerRenameModal(bool, ArrangerFocus, String);
impl ArrangerRenameModal {
pub fn new (focus: ArrangerFocus) -> Self {
Self(false, focus)
pub fn new (focus: ArrangerFocus, name: String) -> Self {
Self(false, focus, name)
}
}
@ -23,7 +23,12 @@ render!(ArrangerRenameModal |self, buf, area| {
ArrangerFocus::Scene(_) => "Rename scene:",
ArrangerFocus::Clip(_, _) => "Rename clip:",
};
label.blit(buf, area.x + 3, y, Some(Style::default().not_bold().white().not_dim()))?;
label.blit(
buf, area.x + 3, y, Some(Style::default().not_bold().white().not_dim())
)?;
self.2.blit(
buf, area.x + 3 + label.len() as u16 + 1, y, Some(Style::default().bold().white().not_dim())
)?;
Ok(area)
});