From 71c22e836971a0d30d8eb2bb797c9c1cf1ee4d40 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 6 Oct 2016 17:28:33 +0200 Subject: [PATCH] Ensure profiles are always exported in order (global, ex. 0, ex. 1, ...) The order is important because the importer expects this order. CURA-2478 --- cura/Settings/CuraContainerRegistry.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 271d395307..fd3f529351 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -84,11 +84,26 @@ class CuraContainerRegistry(ContainerRegistry): if result == QMessageBox.No: return found_containers = [] + extruder_positions = [] for instance_id in instance_ids: containers = ContainerRegistry.getInstance().findInstanceContainers(id=instance_id) if containers: found_containers.append(containers[0]) + # Determine the position of the extruder of this container + extruder_id = containers[0].getMetaDataEntry("extruder", "") + if extruder_id == "": + # Global stack + extruder_positions.append(-1) + else: + extruder_containers = ContainerRegistry.getInstance().findDefinitionContainers(id=extruder_id) + if extruder_containers: + extruder_positions.append(int(extruder_containers[0].getMetaDataEntry("position", 0))) + else: + extruder_positions.append(0) + # Ensure the profiles are always exported in order (global, extruder 0, extruder 1, ...) + found_containers = [containers for (positions, containers) in sorted(zip(extruder_positions, found_containers))] + profile_writer = self._findProfileWriter(extension, description) try: