diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-24 12:15:09 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-24 12:15:09 +0200 |
| commit | 98ea0ee4691e60b430bd78eb615838da90bce244 (patch) | |
| tree | d64d9d02e25f5b04044ad982beefbce3600a1503 /CHANGELOG.md | |
| parent | 02a795abe731da908928cd08a799ad79002ff421 (diff) | |
| download | qtmaildir-98ea0ee4691e60b430bd78eb615838da90bce244.tar.gz qtmaildir-98ea0ee4691e60b430bd78eb615838da90bce244.zip | |
feat: add a Drafts filter, and close the composer with Ctrl+W
Items 138 and 148.
The query row carried Unread, Inbox, Important, Sent and Trash, and no
Drafts, though the composer has been autosaving into each account's drafts
folder since compose shipped. Reaching them meant typing a query by hand.
Smaller than its size suggested: Account::draftsQuery() and
Config::allDraftsQuery() already existed for the placeholder pane's drafts
count, and builtinFilters() derives the row from kQueryGenerators, so the
work was the generator entry, two resolvedQuery branches, a label and an
icon.
It follows TRASH rather than Sent. Folder-matched like both, because `draft`
is a Maildir flag notmuch surfaces as a tag while the folder is what the
user means and what the composer actually writes into. But NOT flat: Sent is
flat so a thread cannot fold the user's own message back into the
conversation it answers, and a draft reply belongs with its conversation for
the same reason a trashed message does.
An account with no drafts folder shows no button, per item 103's rule. The
existing row test surfaced that by failing until its fixture configured one,
which is the rule working rather than a defect.
Ctrl+W closes the composer, which bound nothing at all: the only way out was
the title bar. The action is parented to the composer, so it is a
WindowShortcut dispatched to the active one only and the main window's
namespace is untouched, exactly like the formatting shortcuts. It calls
close() rather than doing anything of its own, since closeEvent() already
decides whether the draft is saved and a second route out that skipped it
would lose the message.
The Italian gains "Bozze"; lrelease reports 478 finished, 0 unfinished.
Diffstat (limited to 'CHANGELOG.md')
| -rw-r--r-- | CHANGELOG.md | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index c0a567c..19e52d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,13 @@ point at which they are stable. reply follows what the message being answered used. - Drafts autosave to the account's `drafts` folder as ordinary Maildir files, so mbsync carries them to the server and another client can pick one up. +- **A Drafts filter** in the query row, beside Sent and Trash. It matches each + account's `drafts` folder, so it finds what the composer actually writes + rather than trusting a flag. An account that configures no drafts folder + contributes nothing and shows no button. +- `Ctrl+W` closes a composer, the way it closes a window elsewhere. The draft + is saved or discarded exactly as it is when the window is closed by any + other route. - **The composer is laid out by scope.** Send is a large button beside the headers rather than one more entry in a row of formatting buttons; the formatting controls are icons on their own bar directly above the editor, |
