mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
Make the departure time non-editable.
Fixes part 2 of https://github.com/Khopa/dcs_liberation/issues/207.
This commit is contained in:
parent
da2584d7ee
commit
8dc531bb7f
@ -19,11 +19,15 @@ class QFlightPlanner(QTabWidget):
|
|||||||
def __init__(self, package: Package, flight: Flight, game: Game):
|
def __init__(self, package: Package, flight: Flight, game: Game):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.general_settings_tab = QGeneralFlightSettingsTab(game, flight)
|
self.general_settings_tab = QGeneralFlightSettingsTab(
|
||||||
|
game, package, flight
|
||||||
|
)
|
||||||
|
# noinspection PyUnresolvedReferences
|
||||||
self.general_settings_tab.on_flight_settings_changed.connect(
|
self.general_settings_tab.on_flight_settings_changed.connect(
|
||||||
lambda: self.on_planned_flight_changed.emit())
|
lambda: self.on_planned_flight_changed.emit())
|
||||||
self.payload_tab = QFlightPayloadTab(flight, game)
|
self.payload_tab = QFlightPayloadTab(flight, game)
|
||||||
self.waypoint_tab = QFlightWaypointTab(game, package, flight)
|
self.waypoint_tab = QFlightWaypointTab(game, package, flight)
|
||||||
|
# noinspection PyUnresolvedReferences
|
||||||
self.waypoint_tab.on_flight_changed.connect(
|
self.waypoint_tab.on_flight_changed.connect(
|
||||||
lambda: self.on_planned_flight_changed.emit())
|
lambda: self.on_planned_flight_changed.emit())
|
||||||
self.addTab(self.general_settings_tab, "General Flight settings")
|
self.addTab(self.general_settings_tab, "General Flight settings")
|
||||||
|
|||||||
@ -0,0 +1,32 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
|
from PySide2.QtWidgets import QLabel, QHBoxLayout, QGroupBox, QVBoxLayout
|
||||||
|
|
||||||
|
from gen.ato import Package
|
||||||
|
from gen.flights.flight import Flight
|
||||||
|
from gen.flights.traveltime import TotEstimator
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: Remove?
|
||||||
|
class QFlightDepartureDisplay(QGroupBox):
|
||||||
|
|
||||||
|
def __init__(self, package: Package, flight: Flight):
|
||||||
|
super().__init__("Departure")
|
||||||
|
|
||||||
|
layout = QVBoxLayout()
|
||||||
|
|
||||||
|
departure_row = QHBoxLayout()
|
||||||
|
layout.addLayout(departure_row)
|
||||||
|
|
||||||
|
estimator = TotEstimator(package)
|
||||||
|
delay = datetime.timedelta(seconds=estimator.mission_start_time(flight))
|
||||||
|
|
||||||
|
departure_row.addWidget(QLabel(
|
||||||
|
f"Departing from <b>{flight.from_cp.name}</b>"
|
||||||
|
))
|
||||||
|
departure_row.addWidget(QLabel(f"At T+{delay}"))
|
||||||
|
|
||||||
|
layout.addWidget(QLabel("Determined based on the package TOT. Edit the "
|
||||||
|
"package to adjust the TOT."))
|
||||||
|
|
||||||
|
self.setLayout(layout)
|
||||||
@ -1,31 +0,0 @@
|
|||||||
from PySide2.QtWidgets import QLabel, QHBoxLayout, QGroupBox, QSpinBox
|
|
||||||
|
|
||||||
|
|
||||||
# TODO: Remove?
|
|
||||||
class QFlightDepartureEditor(QGroupBox):
|
|
||||||
|
|
||||||
def __init__(self, flight):
|
|
||||||
super(QFlightDepartureEditor, self).__init__("Departure")
|
|
||||||
self.flight = flight
|
|
||||||
|
|
||||||
layout = QHBoxLayout()
|
|
||||||
self.depart_from = QLabel("Departing from <b>" + self.flight.from_cp.name + "</b>")
|
|
||||||
self.depart_at_t = QLabel("At T +")
|
|
||||||
self.minutes = QLabel(" minutes")
|
|
||||||
|
|
||||||
self.departure_delta = QSpinBox(self)
|
|
||||||
self.departure_delta.setMinimum(0)
|
|
||||||
self.departure_delta.setMaximum(120)
|
|
||||||
self.departure_delta.setValue(self.flight.scheduled_in // 60)
|
|
||||||
self.departure_delta.valueChanged.connect(self.change_scheduled)
|
|
||||||
|
|
||||||
layout.addWidget(self.depart_from)
|
|
||||||
layout.addWidget(self.depart_at_t)
|
|
||||||
layout.addWidget(self.departure_delta)
|
|
||||||
layout.addWidget(self.minutes)
|
|
||||||
self.setLayout(layout)
|
|
||||||
|
|
||||||
self.changed = self.departure_delta.valueChanged
|
|
||||||
|
|
||||||
def change_scheduled(self):
|
|
||||||
self.flight.scheduled_in = int(self.departure_delta.value() * 60)
|
|
||||||
@ -2,26 +2,29 @@ from PySide2.QtCore import Signal
|
|||||||
from PySide2.QtWidgets import QFrame, QGridLayout, QVBoxLayout
|
from PySide2.QtWidgets import QFrame, QGridLayout, QVBoxLayout
|
||||||
|
|
||||||
from game import Game
|
from game import Game
|
||||||
|
from gen.ato import Package
|
||||||
from gen.flights.flight import Flight
|
from gen.flights.flight import Flight
|
||||||
from qt_ui.windows.mission.flight.settings.QFlightDepartureEditor import QFlightDepartureEditor
|
from qt_ui.windows.mission.flight.settings.QFlightDepartureDisplay import \
|
||||||
from qt_ui.windows.mission.flight.settings.QFlightSlotEditor import QFlightSlotEditor
|
QFlightDepartureDisplay
|
||||||
from qt_ui.windows.mission.flight.settings.QFlightStartType import QFlightStartType
|
from qt_ui.windows.mission.flight.settings.QFlightSlotEditor import \
|
||||||
from qt_ui.windows.mission.flight.settings.QFlightTypeTaskInfo import QFlightTypeTaskInfo
|
QFlightSlotEditor
|
||||||
|
from qt_ui.windows.mission.flight.settings.QFlightStartType import \
|
||||||
|
QFlightStartType
|
||||||
|
from qt_ui.windows.mission.flight.settings.QFlightTypeTaskInfo import \
|
||||||
|
QFlightTypeTaskInfo
|
||||||
|
|
||||||
|
|
||||||
class QGeneralFlightSettingsTab(QFrame):
|
class QGeneralFlightSettingsTab(QFrame):
|
||||||
on_flight_settings_changed = Signal()
|
on_flight_settings_changed = Signal()
|
||||||
|
|
||||||
def __init__(self, game: Game, flight: Flight):
|
def __init__(self, game: Game, package: Package, flight: Flight):
|
||||||
super(QGeneralFlightSettingsTab, self).__init__()
|
super().__init__()
|
||||||
self.flight = flight
|
|
||||||
self.game = game
|
|
||||||
|
|
||||||
layout = QGridLayout()
|
layout = QGridLayout()
|
||||||
flight_info = QFlightTypeTaskInfo(self.flight)
|
flight_info = QFlightTypeTaskInfo(flight)
|
||||||
flight_departure = QFlightDepartureEditor(self.flight)
|
flight_departure = QFlightDepartureDisplay(package, flight)
|
||||||
flight_slots = QFlightSlotEditor(self.flight, self.game)
|
flight_slots = QFlightSlotEditor(flight, game)
|
||||||
flight_start_type = QFlightStartType(self.flight)
|
flight_start_type = QFlightStartType(flight)
|
||||||
layout.addWidget(flight_info, 0, 0)
|
layout.addWidget(flight_info, 0, 0)
|
||||||
layout.addWidget(flight_departure, 1, 0)
|
layout.addWidget(flight_departure, 1, 0)
|
||||||
layout.addWidget(flight_slots, 2, 0)
|
layout.addWidget(flight_slots, 2, 0)
|
||||||
@ -31,8 +34,6 @@ class QGeneralFlightSettingsTab(QFrame):
|
|||||||
layout.addLayout(vstretch, 3, 0)
|
layout.addLayout(vstretch, 3, 0)
|
||||||
self.setLayout(layout)
|
self.setLayout(layout)
|
||||||
|
|
||||||
flight_start_type.setEnabled(self.flight.client_count > 0)
|
flight_start_type.setEnabled(flight.client_count > 0)
|
||||||
flight_slots.changed.connect(
|
flight_slots.changed.connect(
|
||||||
lambda: flight_start_type.setEnabled(self.flight.client_count > 0))
|
lambda: flight_start_type.setEnabled(flight.client_count > 0))
|
||||||
flight_departure.changed.connect(
|
|
||||||
lambda: self.on_flight_settings_changed.emit())
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user