diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-08 10:11:51 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-08 10:11:51 +0200 |
| commit | 37c78f4839d6879144940ab3578e304f9714f839 (patch) | |
| tree | 0daea649fdac8a5b97bece2eba1a53646f302c45 /tests/test_htmlbuilder.cpp | |
| parent | 03f113dc0f6e8db13f600f2650e1536f4c09da21 (diff) | |
| download | qtmaildir-37c78f4839d6879144940ab3578e304f9714f839.tar.gz qtmaildir-37c78f4839d6879144940ab3578e304f9714f839.zip | |
docs(item-20): specify message rows in the thread list and plan the work
The item sat as 'open, unspecified' since 2026-08-04, recording only that the
user's mental model differed from what was built. Described now from three
screenshots plus four decisions: the left pane gains message rows, the root row
IS the thread's first message, replies indent by true reply depth, and action
scope follows the selected row kind.
No confirmation dialog, per this project's standing rule. The hazard the design
introduces is ambiguity rather than destruction, since deleted is a tag and
every mutation is invertible, so the scope is named in the status bar before and
after the action instead.
Sized L, the largest item in the backlog and the first to warrant a branch.
The plan records four API facts verified against the installed headers, each
contradicting the obvious approach: replies are unreachable from a query walk,
thread-derived messages must not be RAII-wrapped, QTreeView lacks
isRowSelected(int), and a tree numbers rows per parent.
Diffstat (limited to 'tests/test_htmlbuilder.cpp')
0 files changed, 0 insertions, 0 deletions
