diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-13 20:16:43 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-13 20:16:43 +0200 |
| commit | c9eb6fc86c947aea0075c1e9d279695cd9f9b7ee (patch) | |
| tree | 7e5339fbb7e71d29498405f9d4b1c4188f5ab4c3 /src/rulequery.cpp | |
| parent | f389db3aad498d46c95c2a95b4280ffb541043b2 (diff) | |
| parent | 9be1b13b91188cf44a40c6786a83de034988cdbd (diff) | |
| download | qtmaildir-c9eb6fc86c947aea0075c1e9d279695cd9f9b7ee.tar.gz qtmaildir-c9eb6fc86c947aea0075c1e9d279695cd9f9b7ee.zip | |
Merge branch 'saved-queries': saved queries in a file of their own
Items 23 and 82. Saved queries move out of the [queries] INI section into
~/.config/qtmaildir/queries.json, gaining the three things the INI could not
express: an order, a pinned flag, and a per-query account scope. They can now be
created, edited, reordered, unpinned and deleted from the UI rather than only by
hand-editing a config file.
The INI could not carry order at all: QSettings reads a section through
childKeys(), which sorts alphabetically and never follows the file, so the
buttons could not be arranged. Migration reads the old section once, marks every
entry pinned so nothing moves on the first launch, and leaves the config file
byte-identical, since rewriting it with QSettings would drop the user's comments
and key order.
Sent stops being a hardcoded button and becomes an ordinary entry carrying
"generated": "sent". Its query is still composed from the accounts every time
it runs, so correcting a folder name still needs no edit here, but the row now
follows one rule instead of having one member the user could not move, rename or
remove.
Item 82 was found by hand-testing item 23 and fixed on the same branch: saving
worked and nothing else did, so a saved query could be created and never
changed. It also uncovered a defect that predated it, where rebuilding the row
with deleteLater() left the stale row answering findChild(), which was already
reachable from the save path.
Hand-tested throughout: the migration against the real config, saving, unpinning,
deleting, reordering, the read-only query field on a generated entry, and an
unpin surviving a restart.
Diffstat (limited to 'src/rulequery.cpp')
0 files changed, 0 insertions, 0 deletions
