mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Follow-up on flight TOT offset
This commit is contained in:
@@ -13,9 +13,12 @@ class QFlightPlanner(QTabWidget):
|
||||
def __init__(self, package_model: PackageModel, flight: Flight, gm: GameModel):
|
||||
super().__init__()
|
||||
|
||||
self.general_settings_tab = QGeneralFlightSettingsTab(gm, package_model, flight)
|
||||
self.payload_tab = QFlightPayloadTab(flight, gm.game)
|
||||
self.waypoint_tab = QFlightWaypointTab(gm.game, package_model.package, flight)
|
||||
|
||||
self.general_settings_tab = QGeneralFlightSettingsTab(
|
||||
gm, package_model, flight, self.waypoint_tab.flight_waypoint_list
|
||||
)
|
||||
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")
|
||||
|
||||
@@ -18,14 +18,24 @@ from game.ato.flightplans.planningerror import PlanningError
|
||||
from qt_ui.models import PackageModel
|
||||
from qt_ui.widgets.QLabeledWidget import QLabeledWidget
|
||||
from qt_ui.widgets.combos.QArrivalAirfieldSelector import QArrivalAirfieldSelector
|
||||
from qt_ui.windows.mission.flight.waypoints.QFlightWaypointList import (
|
||||
QFlightWaypointList,
|
||||
)
|
||||
|
||||
|
||||
class FlightPlanPropertiesGroup(QGroupBox):
|
||||
def __init__(self, game: Game, package_model: PackageModel, flight: Flight) -> None:
|
||||
def __init__(
|
||||
self,
|
||||
game: Game,
|
||||
package_model: PackageModel,
|
||||
flight: Flight,
|
||||
flight_wpt_list: QFlightWaypointList,
|
||||
) -> None:
|
||||
super().__init__("Flight plan properties")
|
||||
self.game = game
|
||||
self.package_model = package_model
|
||||
self.flight = flight
|
||||
self.flight_wpt_list = flight_wpt_list
|
||||
|
||||
layout = QVBoxLayout()
|
||||
|
||||
@@ -51,10 +61,10 @@ class FlightPlanPropertiesGroup(QGroupBox):
|
||||
|
||||
tot_offset_layout.addWidget(QLabel("TOT Offset (minutes:seconds)"))
|
||||
tot_offset_layout.addStretch()
|
||||
negative_offset_checkbox = QCheckBox("Ahead of package")
|
||||
negative_offset_checkbox.setChecked(negative)
|
||||
negative_offset_checkbox.toggled.connect(self.toggle_negative_offset)
|
||||
tot_offset_layout.addWidget(negative_offset_checkbox)
|
||||
self.negative_offset_checkbox = QCheckBox("Ahead of package")
|
||||
self.negative_offset_checkbox.setChecked(negative)
|
||||
self.negative_offset_checkbox.toggled.connect(self.toggle_negative_offset)
|
||||
tot_offset_layout.addWidget(self.negative_offset_checkbox)
|
||||
|
||||
self.tot_offset_spinner = QTimeEdit(QTime(hours, minutes, seconds))
|
||||
self.tot_offset_spinner.setMaximumTime(QTime(59, 0))
|
||||
@@ -93,6 +103,7 @@ class FlightPlanPropertiesGroup(QGroupBox):
|
||||
# is an invalid state for calling anything in TotEstimator.
|
||||
return
|
||||
self.departure_time.setText(f"At T+{self.flight.flight_plan.startup_time()}")
|
||||
self.flight_wpt_list.update_list()
|
||||
|
||||
def set_divert(self, index: int) -> None:
|
||||
old_divert = self.flight.divert
|
||||
@@ -114,6 +125,8 @@ class FlightPlanPropertiesGroup(QGroupBox):
|
||||
self.flight.flight_plan.tot_offset = timedelta(
|
||||
hours=offset.hour(), minutes=offset.minute(), seconds=offset.second()
|
||||
)
|
||||
if self.negative_offset_checkbox.isChecked():
|
||||
return self.toggle_negative_offset()
|
||||
self.update_departure_time()
|
||||
|
||||
def toggle_negative_offset(self) -> None:
|
||||
|
||||
@@ -13,18 +13,29 @@ from qt_ui.windows.mission.flight.settings.QFlightStartType import QFlightStartT
|
||||
from qt_ui.windows.mission.flight.settings.QFlightTypeTaskInfo import (
|
||||
QFlightTypeTaskInfo,
|
||||
)
|
||||
from qt_ui.windows.mission.flight.waypoints.QFlightWaypointList import (
|
||||
QFlightWaypointList,
|
||||
)
|
||||
|
||||
|
||||
class QGeneralFlightSettingsTab(QFrame):
|
||||
on_flight_settings_changed = Signal()
|
||||
|
||||
def __init__(self, game: GameModel, package_model: PackageModel, flight: Flight):
|
||||
def __init__(
|
||||
self,
|
||||
game: GameModel,
|
||||
package_model: PackageModel,
|
||||
flight: Flight,
|
||||
flight_wpt_list: QFlightWaypointList,
|
||||
):
|
||||
super().__init__()
|
||||
|
||||
widgets = [
|
||||
QFlightTypeTaskInfo(flight),
|
||||
QCommsEditor(flight, game),
|
||||
FlightPlanPropertiesGroup(game.game, package_model, flight),
|
||||
FlightPlanPropertiesGroup(
|
||||
game.game, package_model, flight, flight_wpt_list
|
||||
),
|
||||
QFlightSlotEditor(package_model, flight, game.game),
|
||||
QFlightStartType(package_model, flight),
|
||||
QFlightCustomName(flight),
|
||||
|
||||
Reference in New Issue
Block a user