Always show shipyard layout preview and Configure button, disabled until schematic selected
This commit is contained in:
@@ -566,11 +566,21 @@ void SelectedBuildingPanel::updateShipyardLayoutWidgets(
|
||||
const std::string& recipeId,
|
||||
const std::optional<ShipLayoutConfig>& shipLayout)
|
||||
{
|
||||
const ShipDef* shipDef = (type == BuildingType::Shipyard)
|
||||
? findShipDef(recipeId)
|
||||
: nullptr;
|
||||
// The preview and Configure button are shipyard-only controls; hide them
|
||||
// entirely for other building types.
|
||||
if (type != BuildingType::Shipyard)
|
||||
{
|
||||
m_layoutPreview->hide();
|
||||
m_configureLayoutBtn->hide();
|
||||
return;
|
||||
}
|
||||
|
||||
if (shipDef && !shipDef->layout.empty())
|
||||
const ShipDef* shipDef = findShipDef(recipeId);
|
||||
const bool hasSchematic = shipDef && !shipDef->layout.empty();
|
||||
|
||||
// Always show the preview and Configure button for a shipyard; they are only
|
||||
// enabled once a schematic is selected (REQ-MOD-UI-PREVIEW).
|
||||
if (hasSchematic)
|
||||
{
|
||||
ShipLayoutConfig layout;
|
||||
if (shipLayout.has_value())
|
||||
@@ -579,14 +589,16 @@ void SelectedBuildingPanel::updateShipyardLayoutWidgets(
|
||||
}
|
||||
m_layoutPreview->setShipAndLayout(
|
||||
shipDef->layout, layout, &m_config->modules.modules);
|
||||
m_layoutPreview->show();
|
||||
m_configureLayoutBtn->show();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_layoutPreview->hide();
|
||||
m_configureLayoutBtn->hide();
|
||||
m_layoutPreview->showPlaceholder();
|
||||
}
|
||||
|
||||
m_layoutPreview->setEnabled(hasSchematic);
|
||||
m_configureLayoutBtn->setEnabled(hasSchematic);
|
||||
m_layoutPreview->show();
|
||||
m_configureLayoutBtn->show();
|
||||
}
|
||||
|
||||
const RecipeDef* SelectedBuildingPanel::findRecipe(const Building* b) const
|
||||
|
||||
Reference in New Issue
Block a user