diff --git a/qt_ui/widgets/combos/QOriginAirfieldSelector.py b/qt_ui/widgets/combos/QOriginAirfieldSelector.py index b0995a6b..904ec114 100644 --- a/qt_ui/widgets/combos/QOriginAirfieldSelector.py +++ b/qt_ui/widgets/combos/QOriginAirfieldSelector.py @@ -39,3 +39,9 @@ class QOriginAirfieldSelector(QComboBox): self.addItem(f"{origin.name} ({available} available)", origin) self.model().sort(0) self.update() + + @property + def available(self) -> int: + origin = self.currentData() + inventory = self.global_inventory.for_control_point(origin) + return inventory.available(self.aircraft) diff --git a/qt_ui/windows/mission/flight/QFlightCreator.py b/qt_ui/windows/mission/flight/QFlightCreator.py index 07082848..a2ca14ee 100644 --- a/qt_ui/windows/mission/flight/QFlightCreator.py +++ b/qt_ui/windows/mission/flight/QFlightCreator.py @@ -53,9 +53,11 @@ class QFlightCreator(QDialog): [cp for cp in game.theater.controlpoints if cp.captured], self.aircraft_selector.currentData() ) + self.aircraft_selector.currentIndexChanged.connect(self.update_max_size) layout.addLayout(QLabeledWidget("Airfield:", self.airfield_selector)) self.flight_size_spinner = QFlightSizeSpinner() + self.update_max_size() layout.addLayout(QLabeledWidget("Size:", self.flight_size_spinner)) self.client_slots_spinner = QFlightSizeSpinner( @@ -116,3 +118,8 @@ class QFlightCreator(QDialog): def on_aircraft_changed(self, index: int) -> None: new_aircraft = self.aircraft_selector.itemData(index) self.airfield_selector.change_aircraft(new_aircraft) + + def update_max_size(self) -> None: + self.flight_size_spinner.setMaximum( + min(self.airfield_selector.available, 4) + )