From 8e22cb6eb5ab93622a14827e46d1658580082270 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Tue, 20 Aug 2024 14:12:57 +0300 Subject: [PATCH] arranger: populate rename modal --- crates/tek_sequencer/src/arranger.rs | 10 +++++++++- crates/tek_sequencer/src/arranger_modal.rs | 13 +++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/crates/tek_sequencer/src/arranger.rs b/crates/tek_sequencer/src/arranger.rs index 17e7d5fb..e46fb7aa 100644 --- a/crates/tek_sequencer/src/arranger.rs +++ b/crates/tek_sequencer/src/arranger.rs @@ -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(), + } + ))); } } diff --git a/crates/tek_sequencer/src/arranger_modal.rs b/crates/tek_sequencer/src/arranger_modal.rs index c9b57f02..896e07cd 100644 --- a/crates/tek_sequencer/src/arranger_modal.rs +++ b/crates/tek_sequencer/src/arranger_modal.rs @@ -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) });