Follow-up on flight TOT offset

This commit is contained in:
Raffson
2023-06-04 01:43:48 +02:00
parent 529eea0c01
commit c559d6e2be
9 changed files with 43 additions and 18 deletions

View File

@@ -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")

View File

@@ -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:

View File

@@ -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),