arranger: open and close rename modal

This commit is contained in:
🪞👃🪞 2024-08-20 14:09:03 +03:00
parent b0f4919030
commit c8bdee060c
7 changed files with 92 additions and 17 deletions

View file

@ -1,22 +1,30 @@
use crate::*;
handle!(Arranger |self, e| {
match e {
AppEvent::Input(Event::Key(k)) => {
if k.code == KeyCode::Tab {
self.focus_sequencer = !self.focus_sequencer;
Ok(true)
} else if self.focus_sequencer {
if let Some(sequencer) = self.sequencer_mut() {
handle_keymap(sequencer, e, KEYMAP_SEQUENCER)
if let Some(modal) = self.modal.as_mut() {
let result = modal.handle(e)?;
if modal.exited() {
self.modal = None;
}
Ok(result)
} else {
match e {
AppEvent::Input(Event::Key(k)) => {
if k.code == KeyCode::Tab {
self.focus_sequencer = !self.focus_sequencer;
Ok(true)
} else if self.focus_sequencer {
if let Some(sequencer) = self.sequencer_mut() {
handle_keymap(sequencer, e, KEYMAP_SEQUENCER)
} else {
Ok(false)
}
} else {
Ok(false)
handle_keymap(self, e, KEYMAP_ARRANGER)
}
} else {
handle_keymap(self, e, KEYMAP_ARRANGER)
}
},
_ => Ok(false),
},
_ => Ok(false),
}
}
});
@ -78,4 +86,8 @@ pub const KEYMAP_ARRANGER: &'static [KeyBinding<Arranger>] = keymap!(Arranger {
arranger.track_add(None)?;
Ok(true)
}],
[Char('n'), NONE, "rename", "rename item at cursor", |arranger: &mut Arranger| {
arranger.rename_selected();
Ok(true)
}],
});