From 5ed69edd028adf75c407e7a2c8c3e819870209d6 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sat, 17 May 2025 13:54:05 +0300 Subject: [PATCH] editor: 19x11 wat? but shows --- crates/app/src/api.rs | 4 +++- crates/app/src/view.rs | 3 --- crates/device/src/arranger/arranger_view.rs | 23 ++++++--------------- 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/crates/app/src/api.rs b/crates/app/src/api.rs index 23e584b3..4ee8b868 100644 --- a/crates/app/src/api.rs +++ b/crates/app/src/api.rs @@ -28,7 +28,9 @@ handle!(TuiIn: |self: App, input|Ok(if let Some(command) = self.config.keys.comm let clip = &mut app.scenes_mut()[scene].clips[track]; if clip.is_none() { //app.clip_auto_create(); - *clip = Some(Default::default()); + *clip = Some(Arc::new(RwLock::new(MidiClip::new( + "", false, 384, None, Some(ItemTheme::random()) + )))); } clip.as_ref().map(|c|c.into()) } diff --git a/crates/app/src/view.rs b/crates/app/src/view.rs index 2878985e..30665305 100644 --- a/crates/app/src/view.rs +++ b/crates/app/src/view.rs @@ -76,9 +76,6 @@ impl App { pub fn view_audio_outs_status (&self) -> impl Content + use<'_> { self.project.view_audio_outs_status(self.color) } - pub fn view_arranger (&self) -> impl Content + use<'_> { - &self.project - } pub fn view_arranger_scenes_names (&self) -> impl Content + use<'_> { self.project.view_scenes_names() } diff --git a/crates/device/src/arranger/arranger_view.rs b/crates/device/src/arranger/arranger_view.rs index a08ceddb..04977aac 100644 --- a/crates/device/src/arranger/arranger_view.rs +++ b/crates/device/src/arranger/arranger_view.rs @@ -1,19 +1,5 @@ use crate::*; -impl Content for Arrangement { - fn content (&self) -> impl Render { - panic!(); - let ins = |x|Bsp::n(self.view_inputs_0(), x); - let tracks = |x|Bsp::s(self.view_tracks_0(), x); - let devices = |x|Bsp::s(self.view_devices_0(), x); - let outs = |x|Bsp::s(self.view_outputs_0(), x); - let bg = |x|Tui::bg(Reset, x); - //let track_scroll = |x|Bsp::s(&self.track_scroll, x); - //let scene_scroll = |x|Bsp::e(&self.scene_scroll, x); - self.size.of(outs(tracks(devices(ins(bg(self.view_scenes_clips())))))) - } -} - impl TracksView for T where T: ScenesView + HasMidiIns + HasMidiOuts + HasSize + HasTrackScroll + HasSelection + HasMidiIns + HasEditor {} @@ -439,7 +425,7 @@ pub trait ClipsView: TracksView + ScenesView + Send + Sync { })) } - fn view_track_clips <'a> (&'a self, track_index: usize, track: &Track) -> impl Content { + fn view_track_clips <'a> (&'a self, track_index: usize, track: &'a Track) -> impl Content + 'a { Stack::south(move|cell: &mut dyn FnMut(&dyn Render)|{ for (scene_index, scene) in self.scenes().iter().enumerate().skip(self.scene_scroll()) { let (name, theme) = if let Some(Some(clip)) = &scene.clips.get(track_index) { @@ -480,8 +466,11 @@ pub trait ClipsView: TracksView + ScenesView + Send + Sync { } as u16, Bsp::b( Fill::xy(Outer(true, Style::default().fg(outline))), - Fill::xy(Align::nw(Tui::fg_bg(fg, bg, Align::nw(name.unwrap_or(" ---- ".into()))))) - ))); + Fill::xy(Bsp::b( + Fill::xy(Align::nw(Tui::fg_bg(fg, bg, Align::nw(name.unwrap_or(" ---- ".into()))))), + Fill::xy(When(self.selection().track() == Some(track_index) + && self.selection().scene() == Some(scene_index) + && self.is_editing(), self.editor()))))))); //let (name, theme) = if let Some(clip) = &scene.clips.get(track_index).flatten() { //let clip = clip.read().unwrap(); //(Some(clip.name.clone()), clip.color)