87509bcf99
TASKS.md is now the index (status table, open items, research pointer). 33 files: 32 task files + 1 research facts file. The full take-saga narrative and all design decisions are preserved verbatim; the catalog makes the queue readable without opening every task body. Schema and AGENTS.md updated to reflect the new layout.
2.0 KiB
2.0 KiB
TASK 6 — UI polish batch (scenes/sources rows, dedup naming, social bar)
Catalog:
TASKS.md— status and requirements live here.
Goal: clean up the two side lists and the social bar per gramps's review.
Status: ✅ Done
- ✅ Scene rows are pure selection rows — the per-row edit/trash/visibility icons and the inline rename TextBox are gone (
EditSceneCommand/RemoveSceneCommand/ToggleSceneVisibilityCommand+ handlers +Scene.IsEditingremoved;IsHiddenstays persisted + dims hidden rows) - ✅ Source rows gained the trio — edit (inline rename via new
EditElementCommand+SceneElement.IsEditing), visibility eye (newToggleElementVisibilityCommandflipsSceneElement.IsVisible; the eye style now bindsIsVisible, open/slashed + row dims to 0.45 when hidden), and the existing trash - ✅ Duplicate resource names get a no-space incrementing suffix via shared
NextSourceName(Image, Image2, Image3…) — next free number derived from the names actually in the scene, so deleting a middle resource never collides (AddSource+AddReusedImageboth use it) - ✅ Social bar renders the full validated handle —
MaxWidth=200+TextTrimmingremoved from BOTHSocialBarRendererand the preview template (mastodon@gramps@…no longer cuts off) - ✅ Side panels stay fixed-width (left 220 / right 300) — deliberate: they never re-layout on resize, the preview absorbs it
- ✅ Focus-loss capture lag documented as a known OS limit in
ai.md— deferred by user decision (no code change)
Design decisions
- Next free number from names, not type counts — the old scheme counted elements by
SourceType(count == 0 ? baseName : base+count+1), which collided after deletions; the new helper scans actual names. - One WPF App per AppDomain — the real-App tests (round-clip + naming) share
RealAppHost(a dedicated STA thread owning the singleApp) via theRealAppserial collection, instead of each callingnew App().