diff --git a/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py b/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py index a9b49840..83b68f3a 100644 --- a/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py +++ b/qt_ui/windows/mission/flight/payload/QFlightPayloadTab.py @@ -101,6 +101,7 @@ class QFlightPayloadTab(QFrame): self.flight = flight self.payload_editor = QLoadoutEditor(flight, game) self.payload_editor.toggled.connect(self.on_custom_toggled) + self.payload_editor.saved.connect(self.on_saved_payload) layout = QVBoxLayout() @@ -154,3 +155,8 @@ class QFlightPayloadTab(QFrame): else: self.flight.loadout = self.current_loadout() self.payload_editor.reset_pylons() + + def on_saved_payload(self, payload_name: str) -> None: + loadout = self.flight.loadout + self.loadout_selector.addItem(payload_name, loadout) + self.loadout_selector.setCurrentIndex(self.loadout_selector.count() - 1) diff --git a/qt_ui/windows/mission/flight/payload/QLoadoutEditor.py b/qt_ui/windows/mission/flight/payload/QLoadoutEditor.py index 357467aa..b4169c48 100644 --- a/qt_ui/windows/mission/flight/payload/QLoadoutEditor.py +++ b/qt_ui/windows/mission/flight/payload/QLoadoutEditor.py @@ -3,6 +3,7 @@ from typing import Dict, Union import dcs.lua import dcs.payloads +from PySide2.QtCore import Signal from PySide2.QtWidgets import ( QGridLayout, QGroupBox, @@ -13,16 +14,18 @@ from PySide2.QtWidgets import ( QInputDialog, ) -from game.persistency import base_path from game import Game from game.ato.flight import Flight from game.data.weapons import Pylon +from game.persistency import base_path from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor BACKUP_FOLDER = dcs.payloads.PayloadDirectories.user() / "_retribution_backups" class QLoadoutEditor(QGroupBox): + saved = Signal(str) + def __init__(self, flight: Flight, game: Game) -> None: super().__init__("Use custom loadout") self.flight = flight @@ -112,6 +115,7 @@ class QLoadoutEditor(QGroupBox): f.write("local unitPayloads = ") f.write(dcs.lua.dumps(payloads, indent=1)) f.write("\nreturn unitPayloads") + self.saved.emit(payload_name) def _create_backup_if_needed(self, ac_id): backup_file = BACKUP_FOLDER / f"{ac_id}.lua"