remove extra trait methods

This commit is contained in:
🪞👃🪞 2024-11-24 03:50:38 +01:00
parent f5b1f495ad
commit f1f3a7de10
3 changed files with 15 additions and 29 deletions

View file

@ -184,13 +184,15 @@ impl<T: PhrasesControl> Command<T> for PhraseLengthCommand {
}, },
_ => unreachable!() _ => unreachable!()
} }
Ok(None)
} else if self == Begin { } else if self == Begin {
state.phrase_length_begin(); let length = state.phrases()[state.phrase_index()].read().unwrap().length;
Ok(None) *state.phrases_mode_mut() = Some(
PhrasesMode::Length(state.phrase_index(), length, PhraseLengthFocus::Bar)
);
} else { } else {
unreachable!() unreachable!()
} }
Ok(None)
} }
} }
@ -227,13 +229,15 @@ where
}, },
_ => unreachable!() _ => unreachable!()
}; };
Ok(None)
} else if self == Begin { } else if self == Begin {
state.phrase_rename_begin(); let name = state.phrases()[state.phrase_index()].read().unwrap().name.clone();
Ok(None) *state.phrases_mode_mut() = Some(
PhrasesMode::Rename(state.phrase_index(), name)
);
} else { } else {
unreachable!() unreachable!()
} }
Ok(None)
} }
} }

View file

@ -105,31 +105,12 @@ pub trait PhrasesControl: HasPhrases {
fn set_phrase_index (&self, index: usize); fn set_phrase_index (&self, index: usize);
fn phrases_mode (&self) -> &Option<PhrasesMode>; fn phrases_mode (&self) -> &Option<PhrasesMode>;
fn phrases_mode_mut (&mut self) -> &mut Option<PhrasesMode>; fn phrases_mode_mut (&mut self) -> &mut Option<PhrasesMode>;
fn phrase_rename_begin (&mut self) {
let name = self.phrases()[self.phrase_index()].read().unwrap().name.clone();
*self.phrases_mode_mut() = Some(
PhrasesMode::Rename(self.phrase_index(), name)
)
}
fn phrase_length_begin (&mut self) {
let length = self.phrases()[self.phrase_index()].read().unwrap().length;
*self.phrases_mode_mut() = Some(
PhrasesMode::Length(self.phrase_index(), length, PhraseLengthFocus::Bar)
)
}
fn index_of (&self, phrase: &Phrase) -> Option<usize> { fn index_of (&self, phrase: &Phrase) -> Option<usize> {
for i in 0..self.phrases().len() { for i in 0..self.phrases().len() {
if *self.phrases()[i].read().unwrap() == *phrase { return Some(i) } if *self.phrases()[i].read().unwrap() == *phrase { return Some(i) }
} }
return None return None
} }
fn insert_dup (&mut self) {
let mut phrase = self.phrases()[self.phrase_index()].read().unwrap().duplicate();
phrase.color = ItemColorTriplet::random_near(phrase.color, 0.25);
let index = self.phrase_index() + 1;
self.phrases_mut().insert(index, Arc::new(RwLock::new(phrase)));
self.set_phrase_index(index);
}
} }
pub trait PhraseEditorControl: HasFocus { pub trait PhraseEditorControl: HasFocus {

View file

@ -290,10 +290,11 @@ impl<T: PhrasesControl> InputToCommand<Tui, T> for PhrasesCommand {
String::from("(new)"), true, 4 * PPQ, None, Some(ItemColorTriplet::random()) String::from("(new)"), true, 4 * PPQ, None, Some(ItemColorTriplet::random())
) )
)), )),
key!(Char('d')) => Self::Phrase(Pool::Add( key!(Char('d')) => {
index + 1, let mut phrase = state.phrases()[index].read().unwrap().duplicate();
state.phrases()[index].read().unwrap().duplicate() phrase.color = ItemColorTriplet::random_near(phrase.color, 0.25);
)), Self::Phrase(Pool::Add(index + 1, phrase))
},
key!(Char('c')) => Self::Phrase(Pool::SetColor( key!(Char('c')) => Self::Phrase(Pool::SetColor(
index, index,
ItemColor::random() ItemColor::random()