diff --git a/crates/tek_sequencer/src/sequencer.rs b/crates/tek_sequencer/src/sequencer.rs index 6644e929..b8307cc7 100644 --- a/crates/tek_sequencer/src/sequencer.rs +++ b/crates/tek_sequencer/src/sequencer.rs @@ -191,6 +191,18 @@ impl PhrasePool { let phrase = self.phrases[self.phrase].read().unwrap(); self.mode = Some(PhrasePoolMode::Rename(self.phrase, phrase.name.clone())); } + pub fn move_up (&mut self) { + if self.phrase > 1 { + self.phrases.swap(self.phrase - 1, self.phrase); + self.phrase -= 1; + } + } + pub fn move_down (&mut self) { + if self.phrase < self.phrases.len().saturating_sub(1) { + self.phrases.swap(self.phrase + 1, self.phrase); + self.phrase += 1; + } + } } impl PhraseEditor { pub fn new () -> Self { diff --git a/crates/tek_sequencer/src/sequencer_cmd.rs b/crates/tek_sequencer/src/sequencer_cmd.rs index 2f06cee5..6f137359 100644 --- a/crates/tek_sequencer/src/sequencer_cmd.rs +++ b/crates/tek_sequencer/src/sequencer_cmd.rs @@ -51,6 +51,8 @@ impl Handle for PhrasePool { key!(KeyCode::Char('d')) => { self.insert_dup() }, key!(KeyCode::Char('c')) => { self.randomize_color() }, key!(KeyCode::Char('n')) => { self.begin_rename() }, + key!(KeyCode::Char(',')) => { self.move_up() }, + key!(KeyCode::Char('.')) => { self.move_down() }, _ => return Ok(None), } }