diff --git a/game/ato/package.py b/game/ato/package.py index 68a335aa..8190def4 100644 --- a/game/ato/package.py +++ b/game/ato/package.py @@ -207,3 +207,10 @@ class Package: if flight.departure == airfield: return airfield raise RuntimeError("Could not find any airfield assigned to this package") + + def all_flights_waiting_for_start(self) -> bool: + """Returns True if all flights in the package are waiting for start.""" + for flight in self.flights: + if not flight.state.is_waiting_for_start: + return False + return True diff --git a/qt_ui/windows/mission/QPackageDialog.py b/qt_ui/windows/mission/QPackageDialog.py index 3e785412..dfe834e2 100644 --- a/qt_ui/windows/mission/QPackageDialog.py +++ b/qt_ui/windows/mission/QPackageDialog.py @@ -79,7 +79,10 @@ class QPackageDialog(QDialog): self.tot_spinner.setDisplayFormat("hh:mm:ss") self.tot_spinner.timeChanged.connect(self.save_tot) self.tot_spinner.setToolTip("Package TOT relative to mission TOT") - self.tot_spinner.setEnabled(not self.package_model.package.auto_asap) + self.tot_spinner.setEnabled( + not self.package_model.package.auto_asap + and self.package_model.package.all_flights_waiting_for_start() + ) self.tot_column.addWidget(self.tot_spinner) self.auto_asap = QCheckBox("ASAP") @@ -88,6 +91,9 @@ class QPackageDialog(QDialog): "arrive at the target." ) self.auto_asap.setChecked(self.package_model.package.auto_asap) + self.auto_asap.setEnabled( + self.package_model.package.all_flights_waiting_for_start() + ) self.auto_asap.toggled.connect(self.set_asap) self.tot_column.addWidget(self.auto_asap)