mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-19 04:37:51 -06:00
Fix for duplicating quality changes profiles on the UM2.
Contributes to CURA-2414 Quality changes profiles are created incorrectly
This commit is contained in:
parent
51dee95c8f
commit
46dd4f6093
2 changed files with 10 additions and 17 deletions
|
@ -83,7 +83,7 @@ class QualityManager:
|
||||||
filter_by_material = machine_definition.getMetaDataEntry("has_materials")
|
filter_by_material = machine_definition.getMetaDataEntry("has_materials")
|
||||||
|
|
||||||
# Stick the material IDs in a set
|
# Stick the material IDs in a set
|
||||||
if material_containers is None:
|
if material_containers is None or len(material_containers) == 0:
|
||||||
filter_by_material = False
|
filter_by_material = False
|
||||||
else:
|
else:
|
||||||
material_ids = set()
|
material_ids = set()
|
||||||
|
|
|
@ -587,24 +587,17 @@ class ContainerManager(QObject):
|
||||||
def _duplicateQualityOrQualityChangesForMachineType(self, quality_name, base_name, machine_definition, material_instances):
|
def _duplicateQualityOrQualityChangesForMachineType(self, quality_name, base_name, machine_definition, material_instances):
|
||||||
UM.Logger.log("d", "Attempting to duplicate the quality %s", quality_name)
|
UM.Logger.log("d", "Attempting to duplicate the quality %s", quality_name)
|
||||||
|
|
||||||
# Try Quality
|
if base_name is None:
|
||||||
|
base_name = quality_name
|
||||||
|
|
||||||
|
# Try to find a Quality with the name.
|
||||||
containers = QualityManager.getInstance().findQualityByName(quality_name, machine_definition, material_instances)
|
containers = QualityManager.getInstance().findQualityByName(quality_name, machine_definition, material_instances)
|
||||||
if containers:
|
if containers:
|
||||||
container = containers[0]
|
container = containers[0]
|
||||||
if base_name is None:
|
|
||||||
base_name = quality_name
|
|
||||||
return self._duplicateQualityForMachineType(container, base_name, machine_definition)
|
return self._duplicateQualityForMachineType(container, base_name, machine_definition)
|
||||||
|
|
||||||
# Try quality changes.
|
# Assume it is a quality changes.
|
||||||
containers = QualityManager.getInstance().findQualityChangesByName(quality_name, machine_definition, material_instances)
|
return self._duplicateQualityChangesForMachineType(quality_name, base_name, machine_definition)
|
||||||
if containers:
|
|
||||||
container = containers[0]
|
|
||||||
if base_name is None:
|
|
||||||
base_name = quality_name
|
|
||||||
return self._duplicateQualityChangesForMachineType(container, base_name, machine_definition)
|
|
||||||
else:
|
|
||||||
UM.Logger.log("d", "Unable to duplicate the quality %s, because it doesn't exist.", quality_name)
|
|
||||||
return ""
|
|
||||||
|
|
||||||
# Duplicate a quality profile
|
# Duplicate a quality profile
|
||||||
def _duplicateQualityForMachineType(self, quality_container, base_name, machine_definition):
|
def _duplicateQualityForMachineType(self, quality_container, base_name, machine_definition):
|
||||||
|
@ -631,10 +624,10 @@ class ContainerManager(QObject):
|
||||||
return new_change_instances
|
return new_change_instances
|
||||||
|
|
||||||
# Duplicate a quality changes container
|
# Duplicate a quality changes container
|
||||||
def _duplicateQualityChangesForMachineType(self, quality_changes_container, base_name, machine_definition):
|
def _duplicateQualityChangesForMachineType(self, quality_changes_name, base_name, machine_definition):
|
||||||
new_change_instances = []
|
new_change_instances = []
|
||||||
for container in QualityManager.getInstance().findQualityChangesByName(quality_changes_container.getName(),
|
for container in QualityManager.getInstance().findQualityChangesByName(quality_changes_name,
|
||||||
machine_definition, None):
|
machine_definition, []):
|
||||||
new_unique_id = self._createUniqueId(container.getId(), base_name)
|
new_unique_id = self._createUniqueId(container.getId(), base_name)
|
||||||
new_container = container.duplicate(new_unique_id, base_name)
|
new_container = container.duplicate(new_unique_id, base_name)
|
||||||
new_change_instances.append(new_container)
|
new_change_instances.append(new_container)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue