From 6e0bf1e4b6655888dae20d5370acbe425e9a933a Mon Sep 17 00:00:00 2001 From: unspeaker Date: Tue, 18 Mar 2025 01:19:10 +0200 Subject: [PATCH] move trimmed strings to tengri --- Cargo.lock | 22 +++++----- Cargo.toml | 5 +-- src/view.rs | 70 +++++------------------------- src/view/column.rs | 77 --------------------------------- src/view/status.rs | 8 ++++ src/view/string.rs | 49 --------------------- src/view/table.rs | 104 +++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 135 insertions(+), 200 deletions(-) delete mode 100644 src/view/column.rs create mode 100644 src/view/status.rs delete mode 100644 src/view/string.rs create mode 100644 src/view/table.rs diff --git a/Cargo.lock b/Cargo.lock index 3fecf21..33cc700 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1178,9 +1178,9 @@ dependencies = [ [[package]] name = "rust_decimal" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b082d80e3e3cc52b2ed634388d436fe1f4de6af5786cc2de9ba9737527bdf555" +checksum = "5c24af6e7ac43c88a8a458d1139d0246fdce2f6cd2f1ac6cb51eb88b29c978af" dependencies = [ "arrayvec", "borsh", @@ -1433,7 +1433,6 @@ dependencies = [ "pad", "rusty-chromaprint", "tengri", - "unicode-width 0.2.0", "walkdir", "xxhash-rust", ] @@ -1446,8 +1445,8 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tengri" -version = "0.2.0" -source = "git+https://codeberg.org/unspeaker/tengri?rev=10a2d17#10a2d17b487fb6a8690d807d7698f04da4267129" +version = "0.3.2" +source = "git+https://codeberg.org/unspeaker/tengri?rev=96ff10c#96ff10c4b0fda0d71308f488f5715c2f87f782d0" dependencies = [ "tengri_input", "tengri_output", @@ -1456,18 +1455,18 @@ dependencies = [ [[package]] name = "tengri_input" -version = "0.2.0" -source = "git+https://codeberg.org/unspeaker/tengri?rev=10a2d17#10a2d17b487fb6a8690d807d7698f04da4267129" +version = "0.3.2" +source = "git+https://codeberg.org/unspeaker/tengri?rev=96ff10c#96ff10c4b0fda0d71308f488f5715c2f87f782d0" [[package]] name = "tengri_output" -version = "0.2.0" -source = "git+https://codeberg.org/unspeaker/tengri?rev=10a2d17#10a2d17b487fb6a8690d807d7698f04da4267129" +version = "0.3.2" +source = "git+https://codeberg.org/unspeaker/tengri?rev=96ff10c#96ff10c4b0fda0d71308f488f5715c2f87f782d0" [[package]] name = "tengri_tui" -version = "0.2.0" -source = "git+https://codeberg.org/unspeaker/tengri?rev=10a2d17#10a2d17b487fb6a8690d807d7698f04da4267129" +version = "0.3.2" +source = "git+https://codeberg.org/unspeaker/tengri?rev=96ff10c#96ff10c4b0fda0d71308f488f5715c2f87f782d0" dependencies = [ "atomic_float", "better-panic", @@ -1479,6 +1478,7 @@ dependencies = [ "ratatui", "tengri_input", "tengri_output", + "unicode-width 0.2.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8957ef1..2b88196 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,11 @@ [package] -name = "taggart" +name = "taggart" version = "0.1.0" edition = "2024" [dependencies.tengri] git = "https://codeberg.org/unspeaker/tengri" -rev = "10a2d17" +rev = "96ff10c" [dependencies] clap = { version = "4.5.4", features = [ "cargo" ] } @@ -19,7 +19,6 @@ opener = "0.7" opus_headers = "0.1.2" pad = "0.1" rusty-chromaprint = "0.3.0" -unicode-width = "0.2" walkdir = "2" xxhash-rust = { version = "0.8.5", features = ["xxh3"] } diff --git a/src/view.rs b/src/view.rs index bfa2e9f..6a24f8c 100644 --- a/src/view.rs +++ b/src/view.rs @@ -1,10 +1,9 @@ use crate::*; -use tengri::tui::ratatui::{style::{Color, Style}, prelude::Stylize}; -use std::sync::atomic::{AtomicU16, Ordering::Relaxed}; +pub(crate) use tengri::tui::ratatui::style::Color;//, Style}, prelude::Stylize}; pub(crate) use pad::PadStr; -mod column; pub use self::column::*; -mod string; pub use self::string::*; +mod status; pub use self::status::*; +mod table; pub use self::table::*; impl Content for Taggart { fn content (&self) -> impl Render { @@ -16,51 +15,6 @@ impl Content for Taggart { } } -struct TreeTable<'a>(&'a Taggart); - -impl<'a> Content for TreeTable<'a> { - fn render (&self, to: &mut TuiOut) { - let area = to.area(); - let Taggart { offset, paths, cursor, column, .. } = self.0; - let (x, w) = self.0.columns.xw(*column); - to.fill_bg([area.x() + x, area.y(), w, area.h()], Color::Rgb(0, 0, 0)); - for (i, y) in area.iter_y().enumerate() { - let i_offset = i + offset; - let selected = *cursor == i_offset; - let mut x = area.x(); - if let Some(entry) = paths.get(i_offset) { - for (index, _fragment) in entry.path.iter().enumerate() { - if index == entry.depth - 1 { - let _cursor = if selected { ">" } else { " " }; - to.area[1] = y; - for Column { width, value, .. } in self.0.columns.0.iter() { - to.area[0] = x; - if let Some(value) = value(entry) { - Content::render(&TrimStringRef(*width as u16, &value), to); - } - x += *width as u16; - } - if selected { - let fill = [area.x(), y, area.w(), 1]; - to.fill_fg(fill, Color::Rgb(0, 0, 0)); - to.fill_bg(fill, Color::Rgb(192, 128, 0)); - let fill = [area.x() + x as u16, y, w, 1]; - to.fill_bg(fill, Color::Rgb(224, 192, 0)); - if let Some((_index, value)) = &self.0.editing { - let x = area.x() + if x > 0 { x + 1 } else { x } as u16; - to.blit(&value, x, y, None) - } - } - } - } - } else { - break - } - } - to.area = area; - } -} - impl Entry { pub fn name (&self) -> Option> { let indent = "".pad_to_width((self.depth - 1) * 2); @@ -79,15 +33,11 @@ impl Entry { "⁇" } } - fn style (&self) -> Option