a86cbd3fbdab5ed443ac7e4482654d06df96627f
The blueprint panel is gone; the side panel column now holds the selected building panel alone at full height. Saving is Ctrl+C on the current selection, and picking one for placement is a new frameless modal card grid opened with Ctrl+V, or handed to directly after a confirmed save. BlueprintPanel sheds its widget half and becomes BlueprintLibrary: the list, its disk round-trip, capture, and the T hotkey, with no widget of its own. MainWindow owns it and drives both dialogs, because ModalPauseScope needs a GameWorldView and only MainWindow has one. Both handlers hold a single pause scope and a single dim scope across the save-to-select handoff, so the dim does not blink and the simulation is not resumed in between. The two facts a card derives -- the per-type contents summary and the plain cost total -- go into lib/sim next to captureBlueprintFromSelection so they can be unit tested; src/ui is off the test include path. They are kept apart from GameWorldView's placement total, which excludes locked types and rotate-in-place targets and is a different number by design. A card's delete icon is a sibling of the card body rather than one of its children: Qt disables a widget's children along with it, and the delete has to stay live on an unaffordable card. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JcReq7hVk4KUPhTDKWAG7K
Description
No description provided
Languages
C++
96%
CMake
2.2%
Python
1.2%
C
0.6%