diff --git a/qt_ui/windows/AirWingDialog.py b/qt_ui/windows/AirWingDialog.py index 4863934b..9aa850c2 100644 --- a/qt_ui/windows/AirWingDialog.py +++ b/qt_ui/windows/AirWingDialog.py @@ -274,6 +274,7 @@ class AirWingTabs(QTabWidget): QFactionUnits( game_model.game.coalition_for(True).faction, self, + show_jtac=True, ), "Faction OWNFOR", ) @@ -281,6 +282,7 @@ class AirWingTabs(QTabWidget): QFactionUnits( game_model.game.coalition_for(False).faction, self, + show_jtac=False, ), "Faction OPFOR", ) diff --git a/qt_ui/windows/newgame/WizardPages/QFactionSelection.py b/qt_ui/windows/newgame/WizardPages/QFactionSelection.py index 833df92f..1eca68f8 100644 --- a/qt_ui/windows/newgame/WizardPages/QFactionSelection.py +++ b/qt_ui/windows/newgame/WizardPages/QFactionSelection.py @@ -27,14 +27,14 @@ from qt_ui.windows.newgame.jinja_env import jinja_env class QFactionUnits(QScrollArea): - def __init__(self, faction: Faction, parent=None): + def __init__(self, faction: Faction, parent=None, show_jtac: bool = False): super().__init__() self.setWidgetResizable(True) self.content = QWidget() self.setWidget(self.content) self.parent = parent self.faction = faction - self._create_checkboxes() + self._create_checkboxes(show_jtac) def _add_checkboxes( self, @@ -56,7 +56,7 @@ class QFactionUnits(QScrollArea): counter += 1 return counter - def _create_checkboxes(self): + def _create_checkboxes(self, show_jtac: bool) -> None: counter = 0 self.checkboxes: dict[str, QCheckBox] = {} grid = QGridLayout() @@ -125,8 +125,26 @@ class QFactionUnits(QScrollArea): grid.addWidget(QLabel("Missile units:"), counter, 0) self._add_checkboxes(self.faction.missiles, counter, grid) + if show_jtac: + grid.addWidget(QLabel("JTAC"), counter, 0) + self.create_has_jtac_checkbox(counter, grid) + self.content.setLayout(grid) + def create_has_jtac_checkbox(self, counter: int, grid: QGridLayout) -> None: + counter += 1 + cb = QCheckBox("Has JTAC") + cb.setCheckState( + Qt.CheckState.Checked if self.faction.has_jtac else Qt.CheckState.Unchecked + ) + cb.clicked.connect(self._set_jtac) + self.checkboxes["Has JTAC"] = cb + grid.addWidget(cb, counter, 1) + counter += 2 + + def _set_jtac(self, state: bool) -> None: + self.faction.has_jtac = state + def _aircraft_predicate(self, ac: AircraftType): if ( FlightType.AEWC not in ac.task_priorities @@ -267,10 +285,10 @@ class FactionSelection(QtWidgets.QWizardPage): # Faction units self.blueFactionUnits = QFactionUnits( - self.blueFactionSelect.currentData(), self.blueGroupLayout + self.blueFactionSelect.currentData(), self.blueGroupLayout, show_jtac=True ) self.redFactionUnits = QFactionUnits( - self.redFactionSelect.currentData(), self.redGroupLayout + self.redFactionSelect.currentData(), self.redGroupLayout, show_jtac=False ) self.blueGroupLayout.addWidget(blueFaction, 0, 0)