aboutsummaryrefslogtreecommitdiffstats
path: root/src/types.h
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-13 11:33:09 +0200
committerDanilo M. <danix@danix.xyz>2026-08-13 11:33:09 +0200
commit4cb43886ceb18cc6078ab2e8ec28fa15a1c701f2 (patch)
tree7ebcc32f0192b8a901e00bee5d2aab7edc00fe1c /src/types.h
parentd10a5860b290ee35f657e95e509c8dac7608f809 (diff)
downloadqtmaildir-4cb43886ceb18cc6078ab2e8ec28fa15a1c701f2.tar.gz
qtmaildir-4cb43886ceb18cc6078ab2e8ec28fa15a1c701f2.zip
docs: record the rules dialog data-loss defect as item 79
Opening the tagging rules dialog and pressing Save destroyed the first rule in the list, without any editing. The rule lost its query and its tags, then vanished entirely on the next load, since a rule with an empty query is dropped as malformed. Reproduced against the released tag rather than the branch, in a throwaway worktree at 9585674 with a two-rule fixture: constructing the dialog and running its save path left one rule of two. onSelectionChanged blocked signals for the note widget only, while m_enabled::toggled two lines later reached applyEditsToCurrentRule, which writes every field from widgets the loader has not filled yet. The existing comment there shows the hazard was known for one widget and not extended to the other. The fix landed with the builder work: the reloading flag now covers the whole load, and switchingRulesDoesNotLeakRowsBetweenThem is the regression test, verified by mutation to fail without the guard. The live rules file had one casualty, the account rule sitting first in the list, with both its query and its tags empty while every sibling was intact. Restored from the shell backup that the earlier migration kept and verified through mailctl's own reader. The rule had stopped tagging, but only one message had arrived meanwhile; that message is now tagged and the account is complete again at 14969 of 14969.
Diffstat (limited to 'src/types.h')
0 files changed, 0 insertions, 0 deletions