aboutsummaryrefslogtreecommitdiffstats
path: root/src/syncmonitor.h
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-25 09:12:29 +0200
committerDanilo M. <danix@danix.xyz>2026-08-25 09:12:29 +0200
commit0a26961f9a7ae6ab98051e182b92e64165758cf1 (patch)
tree5d76949bf34ab581826f0f699d60e0fc45b3e175 /src/syncmonitor.h
parent8399a2652584e348ba73f7059d9e178958855897 (diff)
downloadqtmaildir-0a26961f9a7ae6ab98051e182b92e64165758cf1.tar.gz
qtmaildir-0a26961f9a7ae6ab98051e182b92e64165758cf1.zip
fix(drafts): list drafts as messages, not threadssignatures
The Drafts filter shipped threaded in item 138, reasoning that a draft reply belongs with the conversation it answers. That reasoning cost the feature: a thread row stands for its first matched message, which for a draft reply is the message being replied to, so the draft itself had no row of its own and double-clicking the conversation opened nothing. Reversed with the user. Drafts now follows Sent; Trash deliberately does not, since a deleted message still belongs to its conversation and nothing there has to be reachable for editing. The view mode was decided in three places that each compared against "sent" and had to agree: builtinFilter(), the reader that reapplies the mode, and the writer that skips storing what the generator implies. generatorIsFlat() is now the one closed set they share, and builtinFilter() sets flat from it rather than inside a branch so the set cannot drift from the labels. Setting only the branch would have looked correct. Its save/load pair survives by accident, because the writer's skip knew only "sent" and so would have stored the key for drafts. The gap is the reader's fallback, for a file carrying no flat key at all: an older build, a migration or a hand edit comes back threaded against a flat button, and the next save persists the disagreement. theDraftsFilterIsThreadedNotFlat is inverted rather than deleted, keeping its history, and now also pins Trash as threaded. The round trip is covered by extending aGeneratedEntryWritesNoRedundantKeys, which already asserted that property for Sent. Mutation-checked: reverting generatorIsFlat() to "sent" alone fails both. Suite 37 of 38; undoMovesTheMessageBack is item 136, pre-existing and on an unrelated path. Closes item 159. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UUQS6n3cmsFrsjCNmwNtf8
Diffstat (limited to 'src/syncmonitor.h')
0 files changed, 0 insertions, 0 deletions