divide the always-available rows in the General context too

The General card was the one that ran its context rows and the global ones
together as a flat list. That made it the exception a player has to notice: the
same six rows sit under a caption everywhere else, so leaving them uncaptioned
here asks the reader to work out that they are the same six.

Requirement wording corrected with it -- it claimed the always-available rows
were the General context's entire content, which was never true. General has
Select, Select area and Deconstruct mode of its own above the divider, exactly
like the other contexts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YHcUerKAZKWNvSKJxYKbnG
This commit is contained in:
2026-08-07 19:06:01 +02:00
parent fe69921b8e
commit 37d9166348
2 changed files with 5 additions and 6 deletions

View File

@@ -159,11 +159,10 @@ void ControlsPanel::rebuild(const ControlContext& context)
m_rowsLayout->addWidget(makeRow(action, context, m_rows));
}
// The always-available block sits under a divider, except in the General context,
// where those rows and the context's own are the same kind of thing to a player
// with nothing selected and no mode active (REQ-UI-CONTROLS-CARD).
if (!m_shownAlwaysActions.empty()
&& getControlContextKind(context) != ControlContextKind::General)
// The always-available block sits under a divider in every context, the General one
// included, so the card is read the same way wherever the player is
// (REQ-UI-CONTROLS-CARD).
if (!m_shownAlwaysActions.empty())
{
QFrame* divider = new QFrame(m_rows);
divider->setFrameShape(QFrame::HLine);