aboutsummaryrefslogtreecommitdiffstats
path: root/CHANGELOG.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-25 10:13:20 +0200
committerDanilo M. <danix@danix.xyz>2026-08-25 10:13:20 +0200
commit07c36ce617512bb9514e604b614e95a15c390b04 (patch)
treec933635e83f55cda94e4b1a9457a28cebefc3ed4 /CHANGELOG.md
parent01ea9e9d7df04dc771430e4c378202b8ef37b8db (diff)
downloadqtmaildir-07c36ce617512bb9514e604b614e95a15c390b04.tar.gz
qtmaildir-07c36ce617512bb9514e604b614e95a15c390b04.zip
feat(compose): a menu bar on the composer
File, Edit and Format, to the scope the user chose. Save draft (Ctrl+S) is the only new action: saveDraftNow() was reachable from the autosave timer, the send path and closeEvent, so there was no way for the user to ask for a save. It routes through that same function, which is what emits draftSaved for item 158's indexing, reports through item 160's status bar and raises the failure banner; a second write path would have to repeat all three. The menus show the toolbar's own QAction objects rather than copies, as item 140 required for the message pane's bar. Two needed hand-building. The HTML toggle is a QToolButton and cannot go in a menu, so a checkable twin mirrors it in both directions, since a menu entry that only follows the button is half a control. The signature entry takes the switch's own QMenu pointer, because that menu is rebuilt whenever the signatures change and copied entries would go stale. Edit's entries drive QPlainTextEdit and follow its own undoAvailable and copyAvailable, so a greyed entry tells the truth about what pressing it would do. theMenuBarReachesEveryComposerAction() is item 132's reachability rule applied to the composer: it walks the real menu bar and collects the composer's actions with findChildren, so an action added to the toolbar and forgotten in the menus fails without the test being touched. It skips actions owning a submenu, since Qt emits no triggered for those. The composer's actions stay out of KeyMap, per item 148: they are parented to this window, so they are WindowShortcuts dispatched to the active composer and the main window's namespace is untouched. lrelease reports 496 finished, 0 unfinished. Closes item 161. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UUQS6n3cmsFrsjCNmwNtf8
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md6
1 files changed, 6 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 61a93c7..3dcc0a4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,12 @@ point at which they are stable.
own modified marker for the same state, so it is visible while the composer
sits behind another window. Autosaving already worked; it was silent on
success, and the only feedback was the banner that reports a FAILED save.
+- **A menu bar on the composer**, with File, Edit and Format. **Save draft
+ (`Ctrl+S`) is new**: autosave, sending and closing were the only things that
+ could write a draft, so there was no way to ask for one. Everything else was
+ already there and is now findable: Send and Close under File, the editor's
+ undo and clipboard actions under Edit, and the formatting buttons, Attach,
+ Send as HTML and the signature switch under Format.
## [0.27.0] - 2026-08-25