mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Add a button to automatically set the package TOT.
This commit is contained in:
parent
de43a1215c
commit
f7fec834e6
@ -16,6 +16,7 @@ from game.game import Game
|
|||||||
from gen.ato import Package
|
from gen.ato import Package
|
||||||
from gen.flights.flight import Flight
|
from gen.flights.flight import Flight
|
||||||
from gen.flights.flightplan import FlightPlanBuilder
|
from gen.flights.flightplan import FlightPlanBuilder
|
||||||
|
from gen.flights.traveltime import TotEstimator
|
||||||
from qt_ui.models import AtoModel, PackageModel
|
from qt_ui.models import AtoModel, PackageModel
|
||||||
from qt_ui.uiconstants import EVENT_ICONS
|
from qt_ui.uiconstants import EVENT_ICONS
|
||||||
from qt_ui.widgets.ato import QFlightList
|
from qt_ui.widgets.ato import QFlightList
|
||||||
@ -77,21 +78,20 @@ class QPackageDialog(QDialog):
|
|||||||
self.tot_label = QLabel("Time Over Target:")
|
self.tot_label = QLabel("Time Over Target:")
|
||||||
self.tot_column.addWidget(self.tot_label)
|
self.tot_column.addWidget(self.tot_label)
|
||||||
|
|
||||||
if self.package_model.package.time_over_target is None:
|
self.tot_spinner = QTimeEdit(self.tot_qtime())
|
||||||
time = None
|
|
||||||
else:
|
|
||||||
delay = self.package_model.package.time_over_target
|
|
||||||
hours = delay // 3600
|
|
||||||
minutes = delay // 60 % 60
|
|
||||||
seconds = delay % 60
|
|
||||||
time = QTime(hours, minutes, seconds)
|
|
||||||
|
|
||||||
self.tot_spinner = QTimeEdit(time)
|
|
||||||
self.tot_spinner.setMinimumTime(QTime(0, 0))
|
self.tot_spinner.setMinimumTime(QTime(0, 0))
|
||||||
self.tot_spinner.setDisplayFormat("T+hh:mm:ss")
|
self.tot_spinner.setDisplayFormat("T+hh:mm:ss")
|
||||||
self.tot_spinner.timeChanged.connect(self.save_tot)
|
self.tot_spinner.timeChanged.connect(self.save_tot)
|
||||||
self.tot_column.addWidget(self.tot_spinner)
|
self.tot_column.addWidget(self.tot_spinner)
|
||||||
|
|
||||||
|
self.reset_tot_button = QPushButton("Reset TOT")
|
||||||
|
self.reset_tot_button.setToolTip(
|
||||||
|
"Sets the package TOT to the earliest time that all flights can "
|
||||||
|
"arrive at the target."
|
||||||
|
)
|
||||||
|
self.reset_tot_button.clicked.connect(self.reset_tot)
|
||||||
|
self.tot_column.addWidget(self.reset_tot_button)
|
||||||
|
|
||||||
self.package_view = QFlightList(self.package_model)
|
self.package_view = QFlightList(self.package_model)
|
||||||
self.package_view.selectionModel().selectionChanged.connect(
|
self.package_view.selectionModel().selectionChanged.connect(
|
||||||
self.on_selection_changed
|
self.on_selection_changed
|
||||||
@ -117,6 +117,13 @@ class QPackageDialog(QDialog):
|
|||||||
|
|
||||||
self.finished.connect(self.on_close)
|
self.finished.connect(self.on_close)
|
||||||
|
|
||||||
|
def tot_qtime(self) -> QTime:
|
||||||
|
delay = self.package_model.package.time_over_target
|
||||||
|
hours = delay // 3600
|
||||||
|
minutes = delay // 60 % 60
|
||||||
|
seconds = delay % 60
|
||||||
|
return QTime(hours, minutes, seconds)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def on_close(_result) -> None:
|
def on_close(_result) -> None:
|
||||||
GameUpdateSignal.get_instance().redraw_flight_paths()
|
GameUpdateSignal.get_instance().redraw_flight_paths()
|
||||||
@ -126,6 +133,11 @@ class QPackageDialog(QDialog):
|
|||||||
seconds = time.hour() * 3600 + time.minute() * 60 + time.second()
|
seconds = time.hour() * 3600 + time.minute() * 60 + time.second()
|
||||||
self.package_model.update_tot(seconds)
|
self.package_model.update_tot(seconds)
|
||||||
|
|
||||||
|
def reset_tot(self) -> None:
|
||||||
|
self.package_model.update_tot(
|
||||||
|
TotEstimator(self.package_model.package).earliest_tot())
|
||||||
|
self.tot_spinner.setTime(self.tot_qtime())
|
||||||
|
|
||||||
def on_selection_changed(self, selected: QItemSelection,
|
def on_selection_changed(self, selected: QItemSelection,
|
||||||
_deselected: QItemSelection) -> None:
|
_deselected: QItemSelection) -> None:
|
||||||
"""Updates the state of the delete button."""
|
"""Updates the state of the delete button."""
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user