From 14fac03f5d46e28c504ac1cc735aef046ac2d02d Mon Sep 17 00:00:00 2001 From: unspeaker Date: Wed, 11 Dec 2024 21:29:44 +0100 Subject: [PATCH] fix keys overlap --- crates/tek/src/tui/app_sequencer.rs | 1 + crates/tek/src/tui/phrase_editor.rs | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/crates/tek/src/tui/app_sequencer.rs b/crates/tek/src/tui/app_sequencer.rs index 63ab3c8b..f788e013 100644 --- a/crates/tek/src/tui/app_sequencer.rs +++ b/crates/tek/src/tui/app_sequencer.rs @@ -23,6 +23,7 @@ impl TryFrom<&Arc>> for SequencerTui { let mut editor = PhraseEditorModel::default(); editor.show_phrase(Some(phrase.clone())); + editor.edit_mode = PhraseEditMode::Note; let mut player = PhrasePlayerModel::from(&clock); player.play_phrase = Some((Moment::zero(&clock.timebase), Some(phrase))); diff --git a/crates/tek/src/tui/phrase_editor.rs b/crates/tek/src/tui/phrase_editor.rs index 04d863fd..2b033038 100644 --- a/crates/tek/src/tui/phrase_editor.rs +++ b/crates/tek/src/tui/phrase_editor.rs @@ -125,7 +125,7 @@ render!(|self: PhraseView<'a>|{ .unwrap_or(ItemPalette::from(ItemColor::from(TuiTheme::g(64)))); Tui::bg(bg, Tui::split_up(false, 2, Tui::bg(fg.dark.rgb, lay!([PhraseTimeline(&self, fg), PhraseViewStats(&self, fg),])), - lay!([PhraseNotes(&self, fg), PhraseCursor(&self), PhraseKeys(&self, fg)]), + Split::right(false, 5, PhraseKeys(&self, fg), lay!([PhraseNotes(&self, fg), PhraseCursor(&self), ])), )) }); impl<'a, T: HasEditor> From<&'a T> for PhraseView<'a> { @@ -162,15 +162,15 @@ render!(|self: PhraseTimeline<'a>|Tui::fg(TuiTheme::g(224), Tui::push_x(5, forma pub struct PhraseViewStats<'a>(&'a PhraseView<'a>, ItemPalette); render!(|self: PhraseViewStats<'a>|{ let color = self.1.dark.rgb;//if self.0.focused{self.1.light.rgb}else{self.1.dark.rgb}; - lay!([ - Tui::at_sw(Tui::bg(color, Tui::fg(TuiTheme::g(224), format!( + row!([ + Tui::bg(color, Tui::fg(TuiTheme::g(224), format!( " {} | Note: {} ({}) | {} ", self.0.size.format(), self.0.note_point, to_note_name(self.0.note_point), pulses_to_name(self.0.note_len), - )))), - Tui::fill_xy(Tui::at_se({ + ))), + { let mut upper_right = format!("[{}]", if self.0.entered {"■"} else {" "}); if let Some(phrase) = self.0.phrase { upper_right = format!( @@ -181,7 +181,7 @@ render!(|self: PhraseViewStats<'a>|{ ) }; Tui::bg(color, Tui::fg(TuiTheme::g(224), upper_right)) - })) + } ]) }); @@ -496,6 +496,7 @@ impl InputToCommand for PhraseCommand { // TODO: with triplet/dotted key!(Char('<')) => SetNoteLength(prev_note_length(state.note_len)), key!(Char('>')) => SetNoteLength(next_note_length(state.note_len)), + // TODO: '/' set triplet, '?' set dotted _ => match state.edit_mode { PhraseEditMode::Scroll => match from.event() { key!(Char('e')) => SetEditMode(PhraseEditMode::Note),