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

View file

@ -105,31 +105,12 @@ pub trait PhrasesControl: HasPhrases {
fn set_phrase_index (&self, index: usize);
fn phrases_mode (&self) -> &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> {
for i in 0..self.phrases().len() {
if *self.phrases()[i].read().unwrap() == *phrase { return Some(i) }
}
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 {

View file

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