diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-24 11:22:10 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-24 11:22:10 +0200 |
| commit | 55fe1bca09242220e514394acbddb53be796fe40 (patch) | |
| tree | 217e3bb07cc63298ab32c30fce7ee625a84c03d7 /docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md | |
| parent | 2703d4c42710418b0f15a41fa896824e2e1a6170 (diff) | |
| download | qtmaildir-55fe1bca09242220e514394acbddb53be796fe40.tar.gz qtmaildir-55fe1bca09242220e514394acbddb53be796fe40.zip | |
fix(ui): move Compose back, drop the bar below the header, size its icons
Three corrections from looking at the built bar.
Compose returns to the main toolbar. The split this was built to, "about a
message" against "about the list", does not survive contact: what matters is
what the action NEEDS. Reply and Forward are meaningless without a message on
display, while Compose needs none and is disabled only when no account can
send. So the pane's bar holds exactly the two actions that depend on what it
is showing, and Compose sits with the window-wide ones.
The bar moves below the subject and details rows, directly above the web
view. At the top of the pane it read as window chrome rather than as
belonging to the message. The transient notice bars stay above it: they
explain the message rather than offer an action on it.
Its icons were the style's own default, 16px, which is tiny beside a 32px
toolbar. They are now 7/8 of toolbar_icon_size, which is the 28 the user
asked for at their 32, derived rather than hardcoded so the relation holds
if that key changes. The test asserts the relation as well as the value,
since a bare 28 would stop meaning anything the moment the key moved.
m_headerLabel gains an object name so the placement test can find the row it
must sit below.
Diffstat (limited to 'docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md')
| -rw-r--r-- | docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md index d1daa57..3c1c8fd 100644 --- a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md +++ b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability-closed.md @@ -7166,6 +7166,16 @@ that grouping is theirs to make. It shares the container item 141 introduces. `everyActionIsReachableFromAMenu()` asserts on. This is a second presentation of the same `QAction`s. Absorbs item 139. +**Outcome, and the revision the user made on sight.** Built 2026-08-24 with +Compose, Reply and Forward all on the pane's bar, as the note asked. The user +then reconsidered: Compose belongs on the main toolbar after all. The reason +is worth keeping, because it is a better rule than the one this entry was +written to. The useful split is not "about a message" against "about the +list", it is what the action NEEDS: Reply and Forward are meaningless without +a message on display, while Compose needs none and is disabled only when no +account can send. Compose therefore sits with the window-wide actions, and the +pane's bar holds exactly the two actions that depend on what it is showing. + --- ## 141. The message pane has no button bar of its own @@ -7188,4 +7198,20 @@ from named widget classes, per CLAUDE.md, and this should not become the exception. Size assumes 140 and 141 are built together; separately they are each S and the seam between them is wasted work. +**Outcome.** Message actions left, view controls right, separated by an +expanding spacer (`QToolBar` has no `addStretch()`), with `toggle_html` the +first view control. `MessageView::setBarActions()` is the seam, so the pane +still knows nothing about `MainWindow`'s action map. + +**Two things the user corrected on sight, both about placement rather than +contents.** The bar was first put at the TOP of the pane, above the subject +and details rows, where it read as window chrome rather than as belonging to +the message; it now sits directly above the web view, below those rows and +below the transient notice bars, which explain the message rather than offer +an action on it. And its icons were the style's own default, which is 16px +here and tiny beside a 32px toolbar: they are 7/8 of `toolbar_icon_size`, +derived rather than hardcoded so the relation survives the user changing that +key. A test asserting the resulting 28 alone would stop meaning anything the +moment it did, so it asserts the relation as well. + --- |
