From bff3a5bb23c90eb24ccae46606baac97ce1809ee Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 3 Oct 2017 13:16:04 +0200 Subject: [PATCH 1/2] Naming of new machines now uses correct ordering again CURA-4408 --- cura/Settings/CuraStackBuilder.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/cura/Settings/CuraStackBuilder.py b/cura/Settings/CuraStackBuilder.py index 7a48b1657e..09815da319 100644 --- a/cura/Settings/CuraStackBuilder.py +++ b/cura/Settings/CuraStackBuilder.py @@ -29,7 +29,8 @@ class CuraStackBuilder: return None machine_definition = definitions[0] - generated_name = registry.createUniqueName("machine", "", machine_definition.name, machine_definition.name) + + generated_name = registry.createUniqueName("machine", "", name, machine_definition.name) # Make sure the new name does not collide with any definition or (quality) profile # createUniqueName() only looks at other stacks, but not at definitions or quality profiles # Note that we don't go for uniqueName() immediately because that function matches with ignore_case set to true @@ -44,13 +45,7 @@ class CuraStackBuilder: variant = "default", ) - # after creating a global stack can be set custom defined name - if name != generated_name: - name = registry.createUniqueName("machine", "", name, machine_definition.name) - if registry.findContainers(id = name): - name = registry.uniqueName(name) - - new_global_stack.setName(name) + new_global_stack.setName(generated_name) for extruder_definition in registry.findDefinitionContainers(machine = machine_definition.id): position = extruder_definition.getMetaDataEntry("position", None) From 6dcb542e641271703607a62be91adea622ed1e08 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 3 Oct 2017 13:46:38 +0200 Subject: [PATCH 2/2] Fixed issue where "create new" of quality changes in combination with machine caused issues CURA-4409 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 6de4ddc998..422aa9f248 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -600,7 +600,9 @@ class ThreeMFWorkspaceReader(WorkspaceReader): if self._resolve_strategies["machine"] == "new": # The machine is going to get a spiffy new name, so ensure that the id's of user settings match. old_extruder_id = instance_container.getMetaDataEntry("extruder", None) - if old_extruder_id: + # Note that in case of a quality_changes extruder means the definition id of the extruder stack + # For the user settings, it means the actual extruder stack id it's assigned to. + if old_extruder_id and old_extruder_id in extruder_stack_id_map: new_extruder_id = extruder_stack_id_map[old_extruder_id] instance_container.setMetaDataEntry("extruder", new_extruder_id)