mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
parent
f4d75a2c6f
commit
2aed461b3a
@ -22,10 +22,15 @@ class Package:
|
||||
"""A mission package."""
|
||||
|
||||
def __init__(
|
||||
self, target: MissionTarget, db: Database[Flight], auto_asap: bool = False
|
||||
self,
|
||||
target: MissionTarget,
|
||||
db: Database[Flight],
|
||||
auto_asap: bool = False,
|
||||
custom_name: str | None = None,
|
||||
) -> None:
|
||||
self.target = target
|
||||
self._db = db
|
||||
self.custom_name = custom_name
|
||||
|
||||
# True if the package ToT should be reset to ASAP whenever the player makes a
|
||||
# change. This is really a UI property rather than a game property, but we want
|
||||
|
||||
@ -17,6 +17,7 @@ class Migrator:
|
||||
def _migrate_game(self) -> None:
|
||||
self._update_doctrine()
|
||||
self._update_packagewaypoints()
|
||||
self._update_package_attributes()
|
||||
|
||||
def _update_doctrine(self) -> None:
|
||||
doctrines = [
|
||||
@ -41,3 +42,9 @@ class Migrator:
|
||||
for p in c.ato.packages:
|
||||
if not hasattr(p.waypoints, "initial"):
|
||||
p.waypoints = PackageWaypoints.create(p, c)
|
||||
|
||||
def _update_package_attributes(self) -> None:
|
||||
for c in self.game.coalitions:
|
||||
for p in c.ato.packages:
|
||||
if not hasattr(p, "custom_name"):
|
||||
p.custom_name = None
|
||||
|
||||
@ -277,7 +277,10 @@ class PackageDelegate(TwoColumnRowDelegate):
|
||||
def text_for(self, index: QModelIndex, row: int, column: int) -> str:
|
||||
package = self.package(index)
|
||||
if (row, column) == (0, 0):
|
||||
return f"{package.package_description} {package.target.name}"
|
||||
string = f"{package.package_description} {package.target.name}"
|
||||
if package.custom_name:
|
||||
string = string + f" ({package.custom_name})"
|
||||
return string
|
||||
elif (row, column) == (0, 1):
|
||||
clients = self.num_clients(index)
|
||||
return f"Player Slots: {clients}" if clients else ""
|
||||
|
||||
@ -13,6 +13,7 @@ from PySide2.QtWidgets import (
|
||||
QPushButton,
|
||||
QTimeEdit,
|
||||
QVBoxLayout,
|
||||
QLineEdit,
|
||||
)
|
||||
|
||||
from game.ato.flight import Flight
|
||||
@ -69,6 +70,17 @@ class QPackageDialog(QDialog):
|
||||
|
||||
self.summary_row.addStretch(1)
|
||||
|
||||
self.package_name_column = QVBoxLayout()
|
||||
self.summary_row.addLayout(self.package_name_column)
|
||||
self.package_name_label = QLabel("Package Name:")
|
||||
self.package_name_label.setAlignment(Qt.AlignCenter)
|
||||
self.package_name_text = QLineEdit(self.package_model.package.custom_name)
|
||||
self.package_name_text.textChanged.connect(self.on_change_name)
|
||||
self.package_name_column.addWidget(self.package_name_label)
|
||||
self.package_name_column.addWidget(self.package_name_text)
|
||||
|
||||
self.summary_row.addStretch(1)
|
||||
|
||||
self.tot_column = QHBoxLayout()
|
||||
self.summary_row.addLayout(self.tot_column)
|
||||
|
||||
@ -203,6 +215,9 @@ class QPackageDialog(QDialog):
|
||||
# noinspection PyUnresolvedReferences
|
||||
self.package_changed.emit()
|
||||
|
||||
def on_change_name(self) -> None:
|
||||
self.package_model.package.custom_name = self.package_name_text.text()
|
||||
|
||||
|
||||
class QNewPackageDialog(QPackageDialog):
|
||||
"""Dialog window for creating a new package.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user