Revert "Added custom widget version of table"

This reverts commit 825792e367.
This commit is contained in:
Adam Cosner 2025-01-02 22:29:00 -08:00
parent 6958a4cc36
commit 0e29b6b226
3 changed files with 13 additions and 26 deletions

View file

@ -13,7 +13,7 @@ use cosmic::widget::table;
use cosmic::widget::{self, nav_bar}; use cosmic::widget::{self, nav_bar};
use cosmic::{executor, iced}; use cosmic::{executor, iced};
#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)] #[derive(Debug, Default, PartialEq, Eq, Clone, Copy)]
pub enum Category { pub enum Category {
#[default] #[default]
Name, Name,
@ -32,11 +32,11 @@ impl std::fmt::Display for Category {
} }
impl table::ItemCategory for Category { impl table::ItemCategory for Category {
fn width(&self) -> u16 { fn width(&self) -> iced::Length {
match self { match self {
Self::Name => 300, Self::Name => iced::Length::Fill,
Self::Date => 200, Self::Date => iced::Length::Fixed(200.0),
Self::Size => 150, Self::Size => iced::Length::Fixed(150.0),
} }
} }
} }
@ -66,11 +66,11 @@ impl table::ItemInterface<Category> for Item {
} }
} }
fn get_text(&self, category: Category) -> Option<String> { fn get_text(&self, category: Category) -> std::borrow::Cow<'static, str> {
match category { match category {
Category::Name => Some(self.name.clone()), Category::Name => self.name.clone().into(),
Category::Date => Some(self.date.format("%Y/%m/%d").to_string()), Category::Date => self.date.format("%Y/%m/%d").to_string().into(),
Category::Size => Some(format!("{} items", self.size)), Category::Size => format!("{} items", self.size).into(),
} }
} }

View file

@ -8,12 +8,12 @@ pub trait ItemCategory:
Default + std::fmt::Display + Clone + Copy + PartialEq + Eq + std::hash::Hash Default + std::fmt::Display + Clone + Copy + PartialEq + Eq + std::hash::Hash
{ {
/// Function that gets the width of the data /// Function that gets the width of the data
fn width(&self) -> u16; fn width(&self) -> iced::Length;
} }
pub trait ItemInterface<Category: ItemCategory>: Default { pub trait ItemInterface<Category: ItemCategory>: Default {
fn get_icon(&self, category: Category) -> Option<Icon>; fn get_icon(&self, category: Category) -> Option<Icon>;
fn get_text(&self, category: Category) -> Option<String>; fn get_text(&self, category: Category) -> Cow<'static, str>;
fn compare(&self, other: &Self, category: Category) -> std::cmp::Ordering; fn compare(&self, other: &Self, category: Category) -> std::cmp::Ordering;
} }

View file

@ -1,21 +1,8 @@
use std::collections::HashMap;
use iced::Size;
use slotmap::SecondaryMap; use slotmap::SecondaryMap;
use crate::widget::table::{Entity, ItemCategory}; use crate::widget::table::Entity;
pub struct State<Category> pub struct State {
where
Category: ItemCategory + 'static,
{
pub(super) num_items: usize, pub(super) num_items: usize,
pub(super) selected: SecondaryMap<Entity, bool>, pub(super) selected: SecondaryMap<Entity, bool>,
pub(super) paragraphs: SecondaryMap<Entity, HashMap<Category, crate::Plain>>,
pub(super) text_hashes: SecondaryMap<Entity, u64>,
pub(super) item_layout: Vec<Size>,
pub(super) sort_hash: HashMap<Category, u64>,
pub(super) header_paragraphs: HashMap<Category, crate::Plain>,
pub(super) category_layout: Vec<Size>,
} }