From 057f3fe53b723227bec82fd53e03d0536891ff45 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Mon, 6 Feb 2023 00:34:30 -0800 Subject: [PATCH] Don't allow changing TOT for started packages. --- game/ato/package.py | 7 +++++++ qt_ui/windows/mission/QPackageDialog.py | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/game/ato/package.py b/game/ato/package.py index 47c5ed88..5095b441 100644 --- a/game/ato/package.py +++ b/game/ato/package.py @@ -242,3 +242,10 @@ class Package(RadioFrequencyContainer): cf.package = clone clone.add_flight(cf) return clone + + 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 864e250f..25e647f9 100644 --- a/qt_ui/windows/mission/QPackageDialog.py +++ b/qt_ui/windows/mission/QPackageDialog.py @@ -96,7 +96,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") @@ -105,6 +108,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)