insert duplicate phrase

This commit is contained in:
🪞👃🪞 2024-10-11 10:12:02 +03:00
parent 69a81106fc
commit db2a2efa63
4 changed files with 46 additions and 30 deletions

View file

@ -83,13 +83,26 @@ impl Handle<Tui> for PhrasePool<Tui> {
key!(KeyCode::Down) => {
self.phrase = (self.phrase + 1) % self.phrases.len()
},
key!(KeyCode::Char('i')) => {
self.phrases.insert(self.phrase, Arc::new(RwLock::new(Phrase::default())));
key!(KeyCode::Char('a')) => { // append new
let mut phrase = Phrase::default();
phrase.color = random_color();
self.phrases.push(Arc::new(RwLock::new(phrase)));
self.phrase = self.phrases.len() - 1;
},
key!(KeyCode::Char('i')) => { // insert new
let mut phrase = Phrase::default();
phrase.color = random_color();
self.phrases.insert(self.phrase, Arc::new(RwLock::new(phrase)));
self.phrase += 1;
},
key!(KeyCode::Char('a')) => {
self.phrases.push(Arc::new(RwLock::new(Phrase::default())));
self.phrase = self.phrases.len() - 1;
key!(KeyCode::Char('d')) => { // insert duplicate
let phrase = (*self.phrases[self.phrase].read().unwrap()).clone();
self.phrases.insert(self.phrase, Arc::new(RwLock::new(phrase)));
self.phrase += 1;
},
key!(KeyCode::Char('c')) => { // change color
let mut phrase = self.phrases[self.phrase].write().unwrap();
phrase.color = random_color();
},
_ => return Ok(None),
}