add nerdicons and define metadata fields

This commit is contained in:
🪞👃🪞 2025-03-03 22:58:42 +02:00
parent 747abab922
commit c3f826a7d4
2 changed files with 54 additions and 25 deletions

View file

@ -49,13 +49,24 @@ impl<'a> Content<TuiOut> for TreeTable<'a> {
for (index, fragment) in entry.path.iter().enumerate() {
if index == entry.depth - 1 {
let cursor = if selected { ">" } else { " " };
let icon = if entry.is_dir {"+"} else if entry.is_img {"I"} else if entry.is_mus {"M"} else {" "};
let icon = if entry.is_dir.is_some() {
"" //"+"
} else if entry.is_img.is_some() {
""
} else if entry.is_mus.is_some() {
""
} else {
" "
};
let style = if entry.is_dir.is_some() {
None
} else {
Some(Style::default().bold())
};
let name = fragment.display();
let indent = "".pad_to_width((entry.depth - 1) * 2);
let label = table_row(&format!("{cursor} {indent}{icon} {name}"), "", "", "", "");
to.blit(&label, area.x(), y, if entry.is_dir { None } else {
Some(Style::default().bold())
});
to.blit(&label, area.x(), y, style);
if selected {
let fill = [area.x(), y, area.w(), 1];
to.fill_bg(fill, Color::Rgb(48, 48, 48));