mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 11:46:41 +01:00
remove some shorthands
This commit is contained in:
parent
96f360791b
commit
911c47fc7c
1 changed files with 20 additions and 25 deletions
|
|
@ -1,13 +1,8 @@
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::PhrasePoolCommand as Pool;
|
|
||||||
|
|
||||||
mod phrase_length; pub(crate) use phrase_length::*;
|
mod phrase_length; pub(crate) use phrase_length::*;
|
||||||
mod phrase_rename; pub(crate) use phrase_rename::*;
|
mod phrase_rename; pub(crate) use phrase_rename::*;
|
||||||
|
|
||||||
use PhraseRenameCommand as Rename;
|
|
||||||
use PhraseLengthCommand as Length;
|
|
||||||
use FileBrowserCommand as Browse;
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct PoolModel {
|
pub struct PoolModel {
|
||||||
pub(crate) visible: bool,
|
pub(crate) visible: bool,
|
||||||
|
|
@ -40,17 +35,17 @@ pub enum PoolMode {
|
||||||
pub enum PoolCommand {
|
pub enum PoolCommand {
|
||||||
Show(bool),
|
Show(bool),
|
||||||
/// Update the contents of the phrase pool
|
/// Update the contents of the phrase pool
|
||||||
Phrase(Pool),
|
Phrase(PhrasePoolCommand),
|
||||||
/// Select a phrase from the phrase pool
|
/// Select a phrase from the phrase pool
|
||||||
Select(usize),
|
Select(usize),
|
||||||
/// Rename a phrase
|
/// Rename a phrase
|
||||||
Rename(Rename),
|
Rename(PhraseRenameCommand),
|
||||||
/// Change the length of a phrase
|
/// Change the length of a phrase
|
||||||
Length(Length),
|
Length(PhraseLengthCommand),
|
||||||
/// Import from file
|
/// Import from file
|
||||||
Import(Browse),
|
Import(FileBrowserCommand),
|
||||||
/// Export to file
|
/// Export to file
|
||||||
Export(Browse),
|
Export(FileBrowserCommand),
|
||||||
}
|
}
|
||||||
|
|
||||||
command!(|self:PoolCommand, state: PoolModel|{
|
command!(|self:PoolCommand, state: PoolModel|{
|
||||||
|
|
@ -107,10 +102,10 @@ command!(|self:PoolCommand, state: PoolModel|{
|
||||||
});
|
});
|
||||||
|
|
||||||
input_to_command!(PoolCommand:<Tui>|state: PoolModel,input|match state.phrases_mode() {
|
input_to_command!(PoolCommand:<Tui>|state: PoolModel,input|match state.phrases_mode() {
|
||||||
Some(PoolMode::Rename(..)) => Self::Rename(Rename::input_to_command(state, input)?),
|
Some(PoolMode::Rename(..)) => Self::Rename(PhraseRenameCommand::input_to_command(state, input)?),
|
||||||
Some(PoolMode::Length(..)) => Self::Length(Length::input_to_command(state, input)?),
|
Some(PoolMode::Length(..)) => Self::Length(PhraseLengthCommand::input_to_command(state, input)?),
|
||||||
Some(PoolMode::Import(..)) => Self::Import(Browse::input_to_command(state, input)?),
|
Some(PoolMode::Import(..)) => Self::Import(FileBrowserCommand::input_to_command(state, input)?),
|
||||||
Some(PoolMode::Export(..)) => Self::Export(Browse::input_to_command(state, input)?),
|
Some(PoolMode::Export(..)) => Self::Export(FileBrowserCommand::input_to_command(state, input)?),
|
||||||
_ => to_phrases_command(state, input)?
|
_ => to_phrases_command(state, input)?
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -120,11 +115,11 @@ fn to_phrases_command (state: &PoolModel, input: &TuiInput) -> Option<PoolComman
|
||||||
let index = state.phrase_index();
|
let index = state.phrase_index();
|
||||||
let count = state.phrases().len();
|
let count = state.phrases().len();
|
||||||
Some(match input.event() {
|
Some(match input.event() {
|
||||||
key_pat!(Char('n')) => Cmd::Rename(Rename::Begin),
|
key_pat!(Char('n')) => Cmd::Rename(PhraseRenameCommand::Begin),
|
||||||
key_pat!(Char('t')) => Cmd::Length(Length::Begin),
|
key_pat!(Char('t')) => Cmd::Length(PhraseLengthCommand::Begin),
|
||||||
key_pat!(Char('m')) => Cmd::Import(Browse::Begin),
|
key_pat!(Char('m')) => Cmd::Import(FileBrowserCommand::Begin),
|
||||||
key_pat!(Char('x')) => Cmd::Export(Browse::Begin),
|
key_pat!(Char('x')) => Cmd::Export(FileBrowserCommand::Begin),
|
||||||
key_pat!(Char('c')) => Cmd::Phrase(Pool::SetColor(index, ItemColor::random())),
|
key_pat!(Char('c')) => Cmd::Phrase(PhrasePoolCommand::SetColor(index, ItemColor::random())),
|
||||||
key_pat!(Char('[')) | key_pat!(Up) => Cmd::Select(
|
key_pat!(Char('[')) | key_pat!(Up) => Cmd::Select(
|
||||||
index.overflowing_sub(1).0.min(state.phrases().len() - 1)
|
index.overflowing_sub(1).0.min(state.phrases().len() - 1)
|
||||||
),
|
),
|
||||||
|
|
@ -133,32 +128,32 @@ fn to_phrases_command (state: &PoolModel, input: &TuiInput) -> Option<PoolComman
|
||||||
),
|
),
|
||||||
key_pat!(Char('<')) => if index > 1 {
|
key_pat!(Char('<')) => if index > 1 {
|
||||||
state.set_phrase_index(state.phrase_index().saturating_sub(1));
|
state.set_phrase_index(state.phrase_index().saturating_sub(1));
|
||||||
Cmd::Phrase(Pool::Swap(index - 1, index))
|
Cmd::Phrase(PhrasePoolCommand::Swap(index - 1, index))
|
||||||
} else {
|
} else {
|
||||||
return None
|
return None
|
||||||
},
|
},
|
||||||
key_pat!(Char('>')) => if index < count.saturating_sub(1) {
|
key_pat!(Char('>')) => if index < count.saturating_sub(1) {
|
||||||
state.set_phrase_index(state.phrase_index() + 1);
|
state.set_phrase_index(state.phrase_index() + 1);
|
||||||
Cmd::Phrase(Pool::Swap(index + 1, index))
|
Cmd::Phrase(PhrasePoolCommand::Swap(index + 1, index))
|
||||||
} else {
|
} else {
|
||||||
return None
|
return None
|
||||||
},
|
},
|
||||||
key_pat!(Delete) => if index > 0 {
|
key_pat!(Delete) => if index > 0 {
|
||||||
state.set_phrase_index(index.min(count.saturating_sub(1)));
|
state.set_phrase_index(index.min(count.saturating_sub(1)));
|
||||||
Cmd::Phrase(Pool::Delete(index))
|
Cmd::Phrase(PhrasePoolCommand::Delete(index))
|
||||||
} else {
|
} else {
|
||||||
return None
|
return None
|
||||||
},
|
},
|
||||||
key_pat!(Char('a')) | key_pat!(Shift-Char('A')) => Cmd::Phrase(Pool::Add(count, MidiClip::new(
|
key_pat!(Char('a')) | key_pat!(Shift-Char('A')) => Cmd::Phrase(PhrasePoolCommand::Add(count, MidiClip::new(
|
||||||
String::from("(new)"), true, 4 * PPQ, None, Some(ItemPalette::random())
|
String::from("(new)"), true, 4 * PPQ, None, Some(ItemPalette::random())
|
||||||
))),
|
))),
|
||||||
key_pat!(Char('i')) => Cmd::Phrase(Pool::Add(index + 1, MidiClip::new(
|
key_pat!(Char('i')) => Cmd::Phrase(PhrasePoolCommand::Add(index + 1, MidiClip::new(
|
||||||
String::from("(new)"), true, 4 * PPQ, None, Some(ItemPalette::random())
|
String::from("(new)"), true, 4 * PPQ, None, Some(ItemPalette::random())
|
||||||
))),
|
))),
|
||||||
key_pat!(Char('d')) | key_pat!(Shift-Char('D')) => {
|
key_pat!(Char('d')) | key_pat!(Shift-Char('D')) => {
|
||||||
let mut phrase = state.phrases()[index].read().unwrap().duplicate();
|
let mut phrase = state.phrases()[index].read().unwrap().duplicate();
|
||||||
phrase.color = ItemPalette::random_near(phrase.color, 0.25);
|
phrase.color = ItemPalette::random_near(phrase.color, 0.25);
|
||||||
Cmd::Phrase(Pool::Add(index + 1, phrase))
|
Cmd::Phrase(PhrasePoolCommand::Add(index + 1, phrase))
|
||||||
},
|
},
|
||||||
_ => return None
|
_ => return None
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue