in src/open_vp_cal/widgets/main_window.py [0:0]
def export_selection_as(self) -> None:
""" Exports the selected led walls, and any of their references
Returns:
"""
folder = select_folder()
if folder:
# Get All The Walls Selected And Any They Reference
all_walls_to_export = []
selected_led_walls = self.stage_controller.selected_led_walls()
for led_wall_name in selected_led_walls:
led_wall = self.project_settings_model.get_led_wall(led_wall_name)
all_walls_to_export.append(led_wall_name)
reference_wall = led_wall.reference_wall
if reference_wall:
all_walls_to_export.append(led_wall_name)
verification_wall = led_wall.verification_wall
if verification_wall:
all_walls_to_export.append(verification_wall)
# Make Sure We Have A Unique List Of Walls To Export
all_walls_to_export = list(set(all_walls_to_export))
# Make A New Project Settings Model With Only The Walls We Want To Export
current_folder = self.project_settings_model.output_folder
self.project_settings_model.output_folder = folder
new_project_settings = self.save_project_settings(inform_completion=False)
self.project_settings_model.output_folder = current_folder
export_project = ProjectSettings.from_json(new_project_settings)
for led_wall in export_project.led_walls:
if led_wall.name not in all_walls_to_export:
export_project.remove_led_wall(led_wall.name)
filename = os.path.join(
export_project.output_folder,
DEFAULT_PROJECT_SETTINGS_NAME
)
export_project.to_json(filename)
self.task_completed()