From 305d1f05235e6c8da1ddefe36767d19f9e3b55cd Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Mon, 24 May 2021 16:57:36 -0700 Subject: [PATCH] Reset non-custom loadout when changing task. --- qt_ui/windows/mission/flight/QFlightPlanner.py | 1 + qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py | 3 +++ .../windows/mission/flight/waypoints/QFlightWaypointTab.py | 6 ++++++ 3 files changed, 10 insertions(+) diff --git a/qt_ui/windows/mission/flight/QFlightPlanner.py b/qt_ui/windows/mission/flight/QFlightPlanner.py index 0c1b9e03..695e1575 100644 --- a/qt_ui/windows/mission/flight/QFlightPlanner.py +++ b/qt_ui/windows/mission/flight/QFlightPlanner.py @@ -19,6 +19,7 @@ class QFlightPlanner(QTabWidget): ) self.payload_tab = QFlightPayloadTab(flight, game) self.waypoint_tab = QFlightWaypointTab(game, package_model.package, flight) + self.waypoint_tab.loadout_changed.connect(self.payload_tab.reload_from_flight) self.addTab(self.general_settings_tab, "General Flight settings") self.addTab(self.payload_tab, "Payload") self.addTab(self.waypoint_tab, "Waypoints") diff --git a/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py b/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py index 364220ba..17ca1cca 100644 --- a/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py +++ b/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py @@ -40,6 +40,9 @@ class QFlightPayloadTab(QFrame): self.setLayout(layout) + def reload_from_flight(self) -> None: + self.loadout_selector.setCurrentText(self.flight.loadout.name) + def on_new_loadout(self, index: int) -> None: self.flight.loadout = self.loadout_selector.itemData(index) self.payload_editor.reset_pylons() diff --git a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py index 95ede450..b38ab146 100644 --- a/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py +++ b/qt_ui/windows/mission/flight/waypoints/QFlightWaypointTab.py @@ -20,6 +20,7 @@ from gen.flights.flightplan import ( PlanningError, StrikeFlightPlan, ) +from gen.flights.loadouts import Loadout from qt_ui.windows.mission.flight.waypoints.QFlightWaypointList import ( QFlightWaypointList, ) @@ -29,6 +30,8 @@ from qt_ui.windows.mission.flight.waypoints.QPredefinedWaypointSelectionWindow i class QFlightWaypointTab(QFrame): + loadout_changed = Signal() + def __init__(self, game: Game, package: Package, flight: Flight): super(QFlightWaypointTab, self).__init__() self.game = game @@ -161,6 +164,9 @@ class QFlightWaypointTab(QFrame): QMessageBox.critical( self, "Could not recreate flight", str(ex), QMessageBox.Ok ) + if not self.flight.loadout.is_custom: + self.flight.loadout = Loadout.default_for(self.flight) + self.loadout_changed.emit() self.flight_waypoint_list.update_list() self.on_change()