Further improvements to livery-selector

Unlocking the full potential, i.e. allowing users to switch back & forth between livery-sets, livery-overrides and normal liveries, including support for overriding flight/flight-member specific liveries.
This commit is contained in:
Raffson
2024-08-03 19:09:56 +02:00
parent 5aca992140
commit f79e96a474
7 changed files with 48 additions and 33 deletions

View File

@@ -439,7 +439,6 @@ class SquadronConfigurationBox(QGroupBox):
if base is None:
raise RuntimeError("Base cannot be none")
self.squadron.assign_to_base(base)
self.squadron.livery = self.livery_selector.currentData()
self.return_players_to_squadron()
# Also update the auto assignable mission types

View File

@@ -268,7 +268,6 @@ class SquadronDialog(QDialog):
left_column.addWidget(QLabel("Livery"))
self.livery_selector = SquadronLiverySelector(self.squadron_model.squadron)
self.livery_selector.currentIndexChanged.connect(self.on_livery_changed)
left_column.addWidget(self.livery_selector)
auto_assigned_tasks = AutoAssignedTaskControls(squadron_model)
@@ -422,6 +421,3 @@ class SquadronDialog(QDialog):
if task is None:
raise RuntimeError("Selected task cannot be None")
self.squadron.primary_task = task
def on_livery_changed(self) -> None:
self.squadron.livery = self.livery_selector.currentData()

View File

@@ -152,11 +152,7 @@ class QFlightPayloadTab(QFrame):
self.same_livery_for_all_checkbox.toggled.connect(self.on_same_livery_toggled)
hbox.addWidget(self.same_livery_for_all_checkbox)
self.livery_selector = SquadronLiverySelector(
self.flight.squadron, full_list_view_override=True
)
self.livery_selector.insertItem(0, "Default", None)
self.livery_selector.setCurrentIndex(
self.livery_selector.findData(self.member_selector.selected_member.livery)
self.flight.squadron, update_squadron=False
)
self.livery_selector.currentIndexChanged.connect(self.on_livery_change)
hbox.addWidget(self.livery_selector)
@@ -313,8 +309,11 @@ class QFlightPayloadTab(QFrame):
def on_livery_change(self) -> None:
livery = self.livery_selector.currentData()
use_livery_set = self.livery_selector.using_livery_set
if self.flight.use_same_livery_for_all_members:
for m in self.flight.roster.members:
m.livery = livery
m.use_livery_set = use_livery_set
else:
self.member_selector.selected_member.livery = livery
self.member_selector.selected_member.use_livery_set = use_livery_set