From 7a6bdf2764f61fa07805418b87fe498eece17251 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Mon, 14 Oct 2024 22:26:02 +0300 Subject: [PATCH] reorder phrases in phrase list --- crates/tek_sequencer/src/sequencer.rs | 12 ++++++++++++ crates/tek_sequencer/src/sequencer_cmd.rs | 2 ++ 2 files changed, 14 insertions(+) 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), } }