Auto-open layout dialog when a new shipyard schematic is selected
Implement REQ-MOD-UI-AUTO-DIALOG: picking a new schematic for a shipyard via the manual selection dialog now opens the layout configuration dialog immediately. Only triggers on an actual schematic change; copy-settings and blueprint placement are unaffected. Extract the ShipLayoutDialog-opening logic into a reusable MainWindow::openShipLayoutDialog helper. Because SetRecipeCommand is queued and clears the layout, the auto-open passes the chosen schematic and an empty layout explicitly rather than reading stale building state. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DZR44tA8sn4dPqDzAVXyps
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include "WinEvent.h"
|
||||
#include "RecipeSelectionRequestedEvent.h"
|
||||
#include "SchematicChoicesAvailableEvent.h"
|
||||
#include "ShipLayout.h"
|
||||
#include "ShipLayoutBlueprint.h"
|
||||
#include "Tick.h"
|
||||
#include "VisualsConfig.h"
|
||||
@@ -57,6 +58,12 @@ private:
|
||||
void handleEvent(std::shared_ptr<const EscapeMenuRequestedEvent> event) override;
|
||||
void handleEvent(std::shared_ptr<const LayoutDialogRequestedEvent> event) override;
|
||||
void handleEvent(std::shared_ptr<const RecipeSelectionRequestedEvent> event) override;
|
||||
|
||||
// Opens the shipyard layout configuration dialog for the given schematic and
|
||||
// current layout, applying the result via SetShipLayoutCommand (REQ-MOD-UI-DIALOG).
|
||||
void openShipLayoutDialog(BuildingId shipyardId,
|
||||
const std::string& schematicId,
|
||||
const ShipLayoutConfig& currentLayout);
|
||||
void layoutPanels();
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user