Two things learned the hard way while moving the build buttons. A shift glyph
written as a literal would have been mangled by MSVC 2017, which does not read
the sources as UTF-8 by default, and a PowerShell Get-Content/Set-Content
round-trip re-encoded a source file with a BOM and double-encoded em-dashes.
Screen-capturing the app window returns a blank client area because the capture
cannot read the QOpenGLWidget surface, which is easy to misread as a broken UI;
visual checks belong to the user.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcReq7hVk4KUPhTDKWAG7K
Implements the REQ-UI-BUILD-BAR rewrite: the build buttons leave the side
panel column for a widget floating at the bottom center of the game world
view, as one non-wrapping row. BuildButtonGrid is renamed BuildButtonBar and
its QGridLayout becomes a QHBoxLayout; the side panel column is left with two
equal-height panels.
Buttons become icon-only. Each face is composed into a single pixmap per
QIcon mode - hotkey badge in the top-left corner, chip icon centered, cost
and block icon below - because a QPushButton holds only one icon. That
replaces the custom-painted BuildButton and lets Qt grey an unaffordable
button by swapping the pixmap. The building name moves into the tooltip,
which now always leads with it, and a missing chip SVG falls back to the name
in the chip's place.
The badge labels come from InputMapper, searched out of the same table the
key handler uses so a badge cannot claim a key that does nothing. The
Deconstruct button has no cost, so it shows its name there instead, and sits
last behind a gap.
Parenting the bar to MainWindow makes creation order the stacking order: it
lands above the world view and its vignettes and below the modal dim, and Qt
routes mouse events to it rather than the world, which is the whole input
clause of REQ-UI-BUILD-BAR at no cost.
Requirements are amended for the two things the mockup added: the hotkey
badge and the Deconstruct caption.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcReq7hVk4KUPhTDKWAG7K
Renames REQ-UI-BUILD-GRID to REQ-UI-BUILD-BAR: the build buttons move out
of the side panel column into a widget floating at the bottom center of the
game world view, as a single non-wrapping row. Buttons become icon-only with
a cost, so the building name moves into the hover tooltip and the missing-icon
fallback becomes a name caption. Deconstruct is the last entry, separated by
a gap. The side panel column is now two equal-height panels.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcReq7hVk4KUPhTDKWAG7K