Add custom name for packages in ATO overview

Resolves #55
This commit is contained in:
Raffson 2023-01-02 02:26:00 +01:00
parent f4d75a2c6f
commit 2aed461b3a
No known key found for this signature in database
GPG Key ID: B0402B2C9B764D99
4 changed files with 32 additions and 2 deletions

View File

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

View File

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

View File

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

View File

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