Files · Items: one icon map, file icon, file row and file grid

The crate had two maps from a file's name to its icon, in chat and in the
file tree, and they disagreed. One map now lives in primitives, over the
Lucide file-* icons, and chat, agent, the file tree and the directory
listing use it. FileIcon draws it for a file or a folder. FileItem is a
file's row, a ListItem with its size and when it changed. FileList is the
directory listing. FileGrid lays tiles in the order given, with a cursor
seeded from the owner's pick: arrows by tile and by row, Home, End, Enter
and a double press to open. The count of what fits a width has one home,
layout's columns_for, and fit builds on it.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 19:40:10 -04:00
1 parent e75171c995
commit a846e10847
36 files changed
+1024 -77

No files matched your search

+6 -2
View File
@@ -93,8 +93,11 @@ Per-component lines live in `tasks/`. Tags there:
- [x] T26b Media · Crop and annotate
- [x] T26c Media · Video
- [x] T26d Media · Audio and controls
- [ ] T26e Media · Capture and devices
- [ ] T27 Files
- [x] T26e Media · Capture and devices
- [ ] T27a Files · Items
- [ ] T27b Files · Explorer
- [ ] T27c Files · Find and look
- [ ] T27d Files · Transfers
- [ ] T28 Messaging
- [ ] T29 Mail
- [ ] T30 Calendar
@@ -317,3 +320,4 @@ Per-component lines live in `tasks/`. Tags there:
| T26d | 1 | FAIL | the playlist's keys started from the first row, not the song under way; the waveform's bar fit sat untested in paint |
| T26d | 2 | PASS | |
| T26e | 1 | FAIL | an option list had no width limit, so a long device name ran it past the window |
| T26e | 2 | PASS | |