From 6a738375e28e0723b6fceff0d4c4c598d897d682 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Fri, 12 Jul 2024 14:46:20 +0300 Subject: [PATCH] don't crash on add track/scene --- src/core.rs | 17 +++---- src/core/render.rs | 73 ++-------------------------- src/model/scene.rs | 9 ++-- src/model/track.rs | 14 ++---- src/view.rs | 69 +-------------------------- src/view/arranger.rs | 11 ++--- src/view/chain.rs | 43 +---------------- src/view/linebuf.rs | 66 ++++++++++++++++++++++++++ src/view/split.rs | 110 +++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 205 insertions(+), 207 deletions(-) create mode 100644 src/view/linebuf.rs diff --git a/src/core.rs b/src/core.rs index 00486201..aebcc8a2 100644 --- a/src/core.rs +++ b/src/core.rs @@ -148,17 +148,12 @@ pub fn input_thread ( // Listen for events and send them to the main thread if ::crossterm::event::poll(poll).is_ok() { let event = ::crossterm::event::read().unwrap(); - match event { - Event::Key(KeyEvent { - code: KeyCode::Char('c'), - modifiers: KeyModifiers::CONTROL, - .. - }) => { - exited.store(true, Ordering::Relaxed); - }, - _ => if device.write().unwrap().handle(&AppEvent::Input(event)).is_err() { - break - } + if let Event::Key(KeyEvent { + code: KeyCode::Char('c'), modifiers: KeyModifiers::CONTROL, .. + }) = event { + exited.store(true, Ordering::Relaxed); + } else if let Err(e) = device.write().unwrap().handle(&AppEvent::Input(event)) { + panic!("{e}") } } }) diff --git a/src/core/render.rs b/src/core/render.rs index 55b898c2..0e5ce44b 100644 --- a/src/core/render.rs +++ b/src/core/render.rs @@ -1,6 +1,8 @@ use crate::core::*; -pub(crate) use ratatui::prelude::*; -pub(crate) use ratatui::buffer::Cell; +pub(crate) use ratatui::prelude::CrosstermBackend; +pub(crate) use ratatui::style::{Stylize, Style, Color}; +pub(crate) use ratatui::layout::Rect; +pub(crate) use ratatui::buffer::{Buffer, Cell}; use ratatui::widgets::WidgetRef; pub fn fill_bg (buf: &mut Buffer, area: Rect, color: Color) { @@ -105,72 +107,6 @@ impl WidgetRef for dyn Render { } } -pub struct LineBuffer { - width: usize, - cells: Vec, - style: Option