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."""
|
"""A mission package."""
|
||||||
|
|
||||||
def __init__(
|
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:
|
) -> None:
|
||||||
self.target = target
|
self.target = target
|
||||||
self._db = db
|
self._db = db
|
||||||
|
self.custom_name = custom_name
|
||||||
|
|
||||||
# True if the package ToT should be reset to ASAP whenever the player makes a
|
# 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
|
# 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:
|
def _migrate_game(self) -> None:
|
||||||
self._update_doctrine()
|
self._update_doctrine()
|
||||||
self._update_packagewaypoints()
|
self._update_packagewaypoints()
|
||||||
|
self._update_package_attributes()
|
||||||
|
|
||||||
def _update_doctrine(self) -> None:
|
def _update_doctrine(self) -> None:
|
||||||
doctrines = [
|
doctrines = [
|
||||||
@ -41,3 +42,9 @@ class Migrator:
|
|||||||
for p in c.ato.packages:
|
for p in c.ato.packages:
|
||||||
if not hasattr(p.waypoints, "initial"):
|
if not hasattr(p.waypoints, "initial"):
|
||||||
p.waypoints = PackageWaypoints.create(p, c)
|
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:
|
def text_for(self, index: QModelIndex, row: int, column: int) -> str:
|
||||||
package = self.package(index)
|
package = self.package(index)
|
||||||
if (row, column) == (0, 0):
|
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):
|
elif (row, column) == (0, 1):
|
||||||
clients = self.num_clients(index)
|
clients = self.num_clients(index)
|
||||||
return f"Player Slots: {clients}" if clients else ""
|
return f"Player Slots: {clients}" if clients else ""
|
||||||
|
|||||||
@ -13,6 +13,7 @@ from PySide2.QtWidgets import (
|
|||||||
QPushButton,
|
QPushButton,
|
||||||
QTimeEdit,
|
QTimeEdit,
|
||||||
QVBoxLayout,
|
QVBoxLayout,
|
||||||
|
QLineEdit,
|
||||||
)
|
)
|
||||||
|
|
||||||
from game.ato.flight import Flight
|
from game.ato.flight import Flight
|
||||||
@ -69,6 +70,17 @@ class QPackageDialog(QDialog):
|
|||||||
|
|
||||||
self.summary_row.addStretch(1)
|
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.tot_column = QHBoxLayout()
|
||||||
self.summary_row.addLayout(self.tot_column)
|
self.summary_row.addLayout(self.tot_column)
|
||||||
|
|
||||||
@ -203,6 +215,9 @@ class QPackageDialog(QDialog):
|
|||||||
# noinspection PyUnresolvedReferences
|
# noinspection PyUnresolvedReferences
|
||||||
self.package_changed.emit()
|
self.package_changed.emit()
|
||||||
|
|
||||||
|
def on_change_name(self) -> None:
|
||||||
|
self.package_model.package.custom_name = self.package_name_text.text()
|
||||||
|
|
||||||
|
|
||||||
class QNewPackageDialog(QPackageDialog):
|
class QNewPackageDialog(QPackageDialog):
|
||||||
"""Dialog window for creating a new package.
|
"""Dialog window for creating a new package.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user