mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
fix renaming of duplicates; remove Arranger::modal
This commit is contained in:
parent
de4797ab52
commit
f500c717a2
5 changed files with 44 additions and 140 deletions
|
|
@ -50,12 +50,12 @@ impl Content for PhrasePool<Tui> {
|
|||
let row1 = format!(" {i}");
|
||||
let row2 = if let Some(PhrasePoolMode::Rename(phrase, _)) = self.mode {
|
||||
if self.focused && i == phrase {
|
||||
format!(" {}▄", name.read().unwrap())
|
||||
format!(" {}▄", name)
|
||||
} else {
|
||||
format!(" {}", name.read().unwrap())
|
||||
format!(" {}", name)
|
||||
}
|
||||
} else {
|
||||
format!(" {}", name.read().unwrap())
|
||||
format!(" {}", name)
|
||||
};
|
||||
add(&col!(row1, row2).fill_x().bg(if i == self.phrase {
|
||||
color //Color::Rgb(40, 50, 30)
|
||||
|
|
@ -85,24 +85,16 @@ impl Content for PhrasePool<Tui> {
|
|||
impl Handle<Tui> for PhrasePool<Tui> {
|
||||
fn handle (&mut self, from: &TuiInput) -> Perhaps<bool> {
|
||||
match self.mode {
|
||||
Some(PhrasePoolMode::Rename(phrase, ref mut old_name)) => match from.event() {
|
||||
key!(KeyCode::Backspace) => {
|
||||
self.phrases[phrase].read().unwrap().name.write().unwrap().pop();
|
||||
},
|
||||
key!(KeyCode::Char(c)) => {
|
||||
self.phrases[phrase].read().unwrap().name.write().unwrap().push(*c);
|
||||
},
|
||||
key!(Shift-KeyCode::Char(c)) => {
|
||||
self.phrases[phrase].read().unwrap().name.write().unwrap().push(*c);
|
||||
},
|
||||
key!(KeyCode::Esc) => {
|
||||
*self.phrases[phrase].read().unwrap().name.write().unwrap() = old_name.clone();
|
||||
self.mode = None;
|
||||
},
|
||||
key!(KeyCode::Enter) => {
|
||||
self.mode = None;
|
||||
},
|
||||
_ => return Ok(None)
|
||||
Some(PhrasePoolMode::Rename(phrase, ref mut old_name)) => {
|
||||
let mut phrase = self.phrases[phrase].write().unwrap();
|
||||
match from.event() {
|
||||
key!(KeyCode::Backspace) => { phrase.name.pop(); },
|
||||
key!(KeyCode::Char(c)) => { phrase.name.push(*c); },
|
||||
key!(Shift-KeyCode::Char(c)) => { phrase.name.push(*c); },
|
||||
key!(KeyCode::Esc) => { phrase.name = old_name.clone(); self.mode = None; },
|
||||
key!(KeyCode::Enter) => { self.mode = None; },
|
||||
_ => return Ok(None)
|
||||
}
|
||||
},
|
||||
None => match from.event() {
|
||||
key!(KeyCode::Up) => self.phrase = if self.phrase > 0 {
|
||||
|
|
@ -115,14 +107,14 @@ impl Handle<Tui> for PhrasePool<Tui> {
|
|||
},
|
||||
key!(KeyCode::Char('a')) => { // append new
|
||||
let mut phrase = Phrase::default();
|
||||
phrase.name = Arc::new(RwLock::new("(no name)".to_string()));
|
||||
phrase.name = String::from("(no name)");
|
||||
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.name = Arc::new(RwLock::new("(no name)".to_string()));
|
||||
phrase.name = String::from("(no name)");
|
||||
phrase.color = random_color();
|
||||
self.phrases.insert(self.phrase + 1, Arc::new(RwLock::new(phrase)));
|
||||
self.phrase += 1;
|
||||
|
|
@ -138,10 +130,7 @@ impl Handle<Tui> for PhrasePool<Tui> {
|
|||
},
|
||||
key!(KeyCode::Char('n')) => { // change name
|
||||
let phrase = self.phrases[self.phrase].read().unwrap();
|
||||
self.mode = Some(PhrasePoolMode::Rename(
|
||||
self.phrase,
|
||||
phrase.name.read().unwrap().clone()
|
||||
));
|
||||
self.mode = Some(PhrasePoolMode::Rename(self.phrase, phrase.name.clone()));
|
||||
},
|
||||
_ => return Ok(None),
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue