def __init__(self, game_model: GameModel, model: PackageModel, parent=None) -> None: super().__init__(parent) self.game_model = game_model self.package_model = model self.add_flight_dialog: Optional[QFlightCreator] = None self.setMinimumSize(1000, 440) self.setWindowTitle( f"Mission Package: {self.package_model.mission_target.name}") self.setWindowIcon(EVENT_ICONS["strike"]) self.layout = QVBoxLayout() self.summary_row = QHBoxLayout() self.layout.addLayout(self.summary_row) self.package_type_column = QHBoxLayout() self.summary_row.addLayout(self.package_type_column) self.package_type_label = QLabel("Package Type:") self.package_type_text = QLabel(self.package_model.description) # noinspection PyUnresolvedReferences self.package_changed.connect(lambda: self.package_type_text.setText( self.package_model.description)) self.package_type_column.addWidget(self.package_type_label) self.package_type_column.addWidget(self.package_type_text) self.summary_row.addStretch(1) self.tot_column = QHBoxLayout() self.summary_row.addLayout(self.tot_column) self.tot_label = QLabel("Time Over Target:") self.tot_column.addWidget(self.tot_label) self.tot_spinner = QTimeEdit(self.tot_qtime()) self.tot_spinner.setMinimumTime(QTime(0, 0)) self.tot_spinner.setDisplayFormat("T+hh:mm:ss") self.tot_spinner.timeChanged.connect(self.save_tot) self.tot_spinner.setToolTip("Package TOT relative to mission TOT") self.tot_spinner.setEnabled(not self.package_model.package.auto_asap) self.tot_column.addWidget(self.tot_spinner) self.auto_asap = QCheckBox("ASAP") self.auto_asap.setToolTip( "Sets the package TOT to the earliest time that all flights can " "arrive at the target.") self.auto_asap.setChecked(self.package_model.package.auto_asap) self.auto_asap.toggled.connect(self.set_asap) self.tot_column.addWidget(self.auto_asap) self.tot_help_label = QLabel( "<a href=\"https://github.com/Khopa/dcs_liberation/wiki/Mission-planning\"><span style=\"color:#FFFFFF;\">Help</span></a>" ) self.tot_help_label.setAlignment(Qt.AlignCenter) self.tot_help_label.setOpenExternalLinks(True) self.tot_column.addWidget(self.tot_help_label) self.package_view = QFlightList(self.game_model, self.package_model) self.package_view.selectionModel().selectionChanged.connect( self.on_selection_changed) self.layout.addWidget(self.package_view) self.button_layout = QHBoxLayout() self.layout.addLayout(self.button_layout) self.add_flight_button = QPushButton("Add Flight") self.add_flight_button.clicked.connect(self.on_add_flight) self.button_layout.addWidget(self.add_flight_button) self.delete_flight_button = QPushButton("Delete Selected") self.delete_flight_button.setProperty("style", "btn-danger") self.delete_flight_button.clicked.connect(self.on_delete_flight) self.delete_flight_button.setEnabled(model.rowCount() > 0) self.button_layout.addWidget(self.delete_flight_button) self.package_model.tot_changed.connect(self.update_tot) self.button_layout.addStretch() self.setLayout(self.layout) self.accepted.connect(self.on_save) self.finished.connect(self.on_close) self.rejected.connect(self.on_cancel)
def __init__(self, game_model: GameModel, model: PackageModel, parent=None) -> None: super().__init__(parent) self.game_model = game_model self.package_model = model self.add_flight_dialog: Optional[QFlightCreator] = None self.setMinimumSize(1000, 440) self.setWindowTitle( f"Mission Package: {self.package_model.mission_target.name}" ) self.setWindowIcon(EVENT_ICONS["strike"]) self.layout = QVBoxLayout() self.summary_row = QHBoxLayout() self.layout.addLayout(self.summary_row) self.package_type_column = QHBoxLayout() self.summary_row.addLayout(self.package_type_column) self.package_type_label = QLabel("Package Type:") self.package_type_text = QLabel(self.package_model.description) # noinspection PyUnresolvedReferences self.package_changed.connect(lambda: self.package_type_text.setText( self.package_model.description )) self.package_type_column.addWidget(self.package_type_label) self.package_type_column.addWidget(self.package_type_text) self.summary_row.addStretch(1) self.tot_column = QHBoxLayout() self.summary_row.addLayout(self.tot_column) self.tot_label = QLabel("Time Over Target:") self.tot_column.addWidget(self.tot_label) self.tot_spinner = QTimeEdit(self.tot_qtime()) self.tot_spinner.setMinimumTime(QTime(0, 0)) self.tot_spinner.setDisplayFormat("T+hh:mm:ss") self.tot_spinner.timeChanged.connect(self.save_tot) self.tot_column.addWidget(self.tot_spinner) self.reset_tot_button = QPushButton("ASAP") 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.game_model, self.package_model) self.package_view.selectionModel().selectionChanged.connect( self.on_selection_changed ) self.layout.addWidget(self.package_view) self.button_layout = QHBoxLayout() self.layout.addLayout(self.button_layout) self.add_flight_button = QPushButton("Add Flight") self.add_flight_button.clicked.connect(self.on_add_flight) self.button_layout.addWidget(self.add_flight_button) self.delete_flight_button = QPushButton("Delete Selected") self.delete_flight_button.setProperty("style", "btn-danger") self.delete_flight_button.clicked.connect(self.on_delete_flight) self.delete_flight_button.setEnabled(model.rowCount() > 0) self.button_layout.addWidget(self.delete_flight_button) self.button_layout.addStretch() self.setLayout(self.layout) self.accepted.connect(self.on_save) self.finished.connect(self.on_close) self.rejected.connect(self.on_cancel)