From 2e66bb8b66df016164d44bf72a2d53b8c4a67dde Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sun, 9 Aug 2026 09:45:32 +0200 Subject: feat(ui): icons on every action, and rename Flag to Important Items 56 and 57, done together because both touch the action registry. 56. The complaint was inconsistency, not absence: eight of twenty-four actions had themed icons, so two adjacent entries in one menu disagreed and the toolbar laid out an empty slot for the other sixteen. The themeIcons table now covers them all. The fifteen names added were probed against a live icon theme first rather than taken from the freedesktop spec on faith, and the existing null-icon guard still lets a theme that lacks one fall back to text. The second half of the note asked that buttons honour the desktop's "Icon only" setting. They could not: the hardcoded setToolButtonStyle overrode it whatever the user had chosen. It now reads SH_ToolButtonStyle. Dropping the call entirely was tried and rejected, since a bare QToolBar defaults to ToolButtonIconOnly rather than to the platform hint, which ignores the setting just as thoroughly the other way. This is a visible change: on a desktop set to "Icon only" the toolbar now shows icons without text. 57. "Important" over "Starred", the user's pick; the Message menu already has "Mark &spam", so "Starred" would have needed an accelerator from inside the word. Changed the action text, its status tip, the undo description and the star column's tooltip, which still read "Flagged". The tag stays `flagged`. It is wire format that neomutt, the user's saved queries and ThreadSummary::isFlagged() all read, and following the label through to the tag would rewrite the mail store and desynchronise every other tool over the same Maildir. The action name stays `flag` too, since that is the key users write in [keys]. Four tests. everyActionCarriesAnIcon names every action missing one and guards against passing on an empty list; it reported all sixteen before the change. theImportantActionStillWritesTheFlaggedTag asserts on the tag the model actually received, and mutating it to `important` fails that test plus two pre-existing held-edit tests. Also adds the changelog entry for the cron-sync indicator fix, which the commit that made it omitted. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 851e318..99de25c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,32 @@ point at which they are stable. - **`assets/mailsync.sh` takes channel names as arguments**, syncing all channels when given none. A replacement sync script that ignores its arguments still works, it just always syncs everything. +- **Every action now carries an icon**, where before only eight of twenty-four + did and adjacent menu entries disagreed with each other. Icons come from the + desktop's icon theme; one the theme does not provide falls back to text alone. +- **An optional `[sync] log` key**, naming the sync script's log file. It + defaults to where `assets/mailsync.sh` writes, and only needs setting if you + changed the script's `LOGFILE`. + +### Changed + +- **"Flag" is now "Important"**, on the menu entry, the undo history and the + star column's tooltip. `Ctrl+I` is unchanged, and so is the `flagged` tag + itself: neomutt, your saved queries and anything else reading the same Maildir + keep working. The `flag` action name in `[keys]` is also unchanged, so + existing bindings are untouched. +- **The toolbar follows your desktop's toolbar button setting** instead of + always showing text beside icons. If your desktop is set to "Icon only", the + toolbar is now icons only; it previously ignored that. + +### Fixed + +- **A sync run from cron now clears the unsynced-changes indicator.** Edits made + in the application reach the mail store through any sync, but only a sync + started from the window cleared the count, so the indicator kept reporting + work that had already gone out and the quit prompt offered to sync for it. + A failed sync, or one whose outcome cannot be read, still leaves the count + standing. ## [0.11.0] - 2026-08-07 -- cgit v1.2.3