Add & Select newly saved payload to selector

This commit is contained in:
Raffson 2023-07-22 00:03:22 +02:00
parent bc38563618
commit 0027c64e57
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
2 changed files with 11 additions and 1 deletions

View File

@ -101,6 +101,7 @@ class QFlightPayloadTab(QFrame):
self.flight = flight self.flight = flight
self.payload_editor = QLoadoutEditor(flight, game) self.payload_editor = QLoadoutEditor(flight, game)
self.payload_editor.toggled.connect(self.on_custom_toggled) self.payload_editor.toggled.connect(self.on_custom_toggled)
self.payload_editor.saved.connect(self.on_saved_payload)
layout = QVBoxLayout() layout = QVBoxLayout()
@ -154,3 +155,8 @@ class QFlightPayloadTab(QFrame):
else: else:
self.flight.loadout = self.current_loadout() self.flight.loadout = self.current_loadout()
self.payload_editor.reset_pylons() 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)

View File

@ -3,6 +3,7 @@ from typing import Dict, Union
import dcs.lua import dcs.lua
import dcs.payloads import dcs.payloads
from PySide2.QtCore import Signal
from PySide2.QtWidgets import ( from PySide2.QtWidgets import (
QGridLayout, QGridLayout,
QGroupBox, QGroupBox,
@ -13,16 +14,18 @@ from PySide2.QtWidgets import (
QInputDialog, QInputDialog,
) )
from game.persistency import base_path
from game import Game from game import Game
from game.ato.flight import Flight from game.ato.flight import Flight
from game.data.weapons import Pylon from game.data.weapons import Pylon
from game.persistency import base_path
from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor from qt_ui.windows.mission.flight.payload.QPylonEditor import QPylonEditor
BACKUP_FOLDER = dcs.payloads.PayloadDirectories.user() / "_retribution_backups" BACKUP_FOLDER = dcs.payloads.PayloadDirectories.user() / "_retribution_backups"
class QLoadoutEditor(QGroupBox): class QLoadoutEditor(QGroupBox):
saved = Signal(str)
def __init__(self, flight: Flight, game: Game) -> None: def __init__(self, flight: Flight, game: Game) -> None:
super().__init__("Use custom loadout") super().__init__("Use custom loadout")
self.flight = flight self.flight = flight
@ -112,6 +115,7 @@ class QLoadoutEditor(QGroupBox):
f.write("local unitPayloads = ") f.write("local unitPayloads = ")
f.write(dcs.lua.dumps(payloads, indent=1)) f.write(dcs.lua.dumps(payloads, indent=1))
f.write("\nreturn unitPayloads") f.write("\nreturn unitPayloads")
self.saved.emit(payload_name)
def _create_backup_if_needed(self, ac_id): def _create_backup_if_needed(self, ac_id):
backup_file = BACKUP_FOLDER / f"{ac_id}.lua" backup_file = BACKUP_FOLDER / f"{ac_id}.lua"