diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-18 12:12:36 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-18 12:12:36 +0200 |
| commit | a089820aba3bc51884ad880b9e3cf689eda7361d (patch) | |
| tree | 1caa6c674b8d56f23da90ca5907375141b70ae7f /src/savequerydialog.cpp | |
| parent | 262174407eabcb986f15c116d39b7ab98fdf0150 (diff) | |
| download | qtmaildir-a089820aba3bc51884ad880b9e3cf689eda7361d.tar.gz qtmaildir-a089820aba3bc51884ad880b9e3cf689eda7361d.zip | |
fix(tags): let a tag be removed even when its name breaks the rules
validateTagName() ran on the removal list as well as the addition list, so
a tag whose name contains a space could be seen on a message and never
deleted: the one dialog that could clear it refused the only text that
names it, and it did so with a modal warning, so the dialog would not even
close.
Whether a tag SHOULD exist is a separate question from whether the user may
delete one that already does, and the answer to the second is always yes.
Validation now runs on additions only, which is where the rule earns its
keep: it stops a troublesome name being created.
Reached by a real Maildir folder named "Inbox/SlackBuilds users", whose
origin tag carried the space through. Only the TYPED route was ever
blocked; unchecking the tag in the list appends to the removal list after
validation has run and worked throughout. The test asserts both routes for
that reason, and asserts that ADDING a spaced tag is still refused, since
the fix must not weaken the rule it narrows.
The natural mutation for this test hangs rather than fails: restoring the
validation raises a modal warning with nothing to dismiss it. The test
avoids calling accept() on the add-rejection case and asks the validator
directly, and the mutation check drops the tag silently instead.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'src/savequerydialog.cpp')
0 files changed, 0 insertions, 0 deletions
