diff options
Diffstat (limited to 'docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md')
| -rw-r--r-- | docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md index 33d6a61..52cc023 100644 --- a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md +++ b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md @@ -113,8 +113,8 @@ taking that too literally. | 53 | Message rows still read as a table, not as a conversation | presentation | ? | open, unspecified | | 54 | A cron sync carries the edits but the count still says pending | correctness | S | **done** | | 55 | In a narrow window the message pane is invisible | presentation | XS | open | -| 56 | No action carries an icon, so the toolbar reserves space for nothing | presentation | S | open | -| 57 | "Flag" would read better as "Important" or "Starred" | presentation | XS | open | +| 56 | No action carries an icon, so the toolbar reserves space for nothing | presentation | S | **done** | +| 57 | "Flag" would read better as "Important" or "Starred" | presentation | XS | **done** | Sizes are rough: XS under an hour, S a sitting, M a session. @@ -3457,6 +3457,29 @@ on a machine whose icon theme resolves the names, so it is an assertion about this desktop as much as about the code, and it says nothing about whether the icon chosen is the *right* one. +**Built 2026-08-09, with item 57.** The `themeIcons` table now covers all 24 +registered actions; the fifteen names added were probed against a live theme +before being written, not taken from the freedesktop spec on faith. The null +guard is kept, so a theme missing a name still degrades to text. + +`setToolButtonStyle()` now reads `QStyle::SH_ToolButtonStyle` instead of +asserting `TextBesideIcon`. Removing the call entirely was considered and +rejected: verified empirically that a bare `QToolBar` defaults to +`Qt::ToolButtonIconOnly` rather than to the platform hint, which would have +ignored the user's setting just as thoroughly in the other direction. + +**This changes the toolbar's appearance on the developer's desktop.** Its hint +reads `0` (`ToolButtonIconOnly`), so the toolbar shows icons without text where +it previously showed both. That is the setting being honoured, which is what the +note asked for, but it is a visible change rather than a silent one. + +Two tests: `everyActionCarriesAnIcon`, which iterates +`KeyMap::knownActions()` and names every action missing one (it reported all +sixteen before the change), and +`theToolbarDoesNotOverrideTheDesktopButtonStyle`. The first carries a guard +asserting the window really registered its actions, so it cannot pass by +iterating an empty list. + ## 57. "Flag" would read better as "Important" or "Starred" **Observed (user, 2026-08-09):** "Flagged to be renamed as 'Important' or @@ -3499,6 +3522,26 @@ whatever the icon depicts (a star suggests "Starred"). - `src/tagdialog.cpp:211` mentions `flagged` in a comment about token completion. That is the tag, not a label, and must not be touched. +**Built 2026-08-09, with item 56.** The user chose "Important". Changed: the +action text to `tr("&Important")`, its status tip, the undo description to +`tr("Mark important")`, and the flag column's tooltip +(`src/threadlistmodel.cpp:192`), which still read "Flagged". The README's +keybinding row and tagging prose followed. + +Unchanged, deliberately: the action **name** `flag`, which is the key a user +writes in `[keys]` and whose rename would silently break every existing +binding; the tag `flagged`; `ThreadSummary::isFlagged()`; the `[tagcolors]` +entry; and the `Flagged = tag:flagged` saved query in the README's sample +config, which is a user's own query name rather than one of our labels. + +`Ctrl+I` was already the binding, which happens to fit the new word. + +`theImportantActionStillWritesTheFlaggedTag` is the test that matters: it +triggers the action and asserts on the tag the model actually received, with a +guard proving the thread did not already carry it. Mutating the tag to +`important` fails it, and also fails two pre-existing held-edit tests, which is +independent confirmation that `flagged` is load-bearing across the suite. + ## Deferred, unsized, or split out Items noted while triaging but not part of the original list. Same numbering |
