mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Use stack properties instead of .findContainer(type = ...)
Recently we changed the empty containers such that there is only one empty container instance and it doesn't have the proper type any more. Instead we have properties on the stack that allows us to find the container with the proper type. It's faster and easier to use. We've had a few bugs about this so I decided to update all of them to remove those for the future, except the ones in plugins/MachineSettingsAction/MachineSettingsAction.py because we have a pending pull request that fixes those. Fixing them would give merge conflicts for fieldOfView. It doesn't really belong to CURA-4024 but I'm sticking it under that nomer anyway to get it reviewed.
This commit is contained in:
parent
4ad9ebc444
commit
81e07b1530
4 changed files with 11 additions and 15 deletions
|
@ -340,10 +340,8 @@ class CuraContainerRegistry(ContainerRegistry):
|
||||||
# \return the ID of the active material or the empty string
|
# \return the ID of the active material or the empty string
|
||||||
def _activeMaterialId(self):
|
def _activeMaterialId(self):
|
||||||
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
||||||
if global_container_stack:
|
if global_container_stack and global_container_stack.material:
|
||||||
material = global_container_stack.findContainer({"type": "material"})
|
return global_container_stack.material.getId()
|
||||||
if material:
|
|
||||||
return material.getId()
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
## Returns true if the current machien requires its own quality profiles
|
## Returns true if the current machien requires its own quality profiles
|
||||||
|
|
|
@ -157,7 +157,7 @@ class MachineManager(QObject):
|
||||||
if str(index) == extruder.getMetaDataEntry("position"):
|
if str(index) == extruder.getMetaDataEntry("position"):
|
||||||
matching_extruder = extruder
|
matching_extruder = extruder
|
||||||
break
|
break
|
||||||
if matching_extruder and matching_extruder.findContainer({"type": "variant"}).getName() != hotend_id:
|
if matching_extruder and matching_extruder.variant.getName() != hotend_id:
|
||||||
# Save the material that needs to be changed. Multiple changes will be handled by the callback.
|
# Save the material that needs to be changed. Multiple changes will be handled by the callback.
|
||||||
self._auto_hotends_changed[str(index)] = containers[0].getId()
|
self._auto_hotends_changed[str(index)] = containers[0].getId()
|
||||||
self._printer_output_devices[0].materialHotendChangedMessage(self._materialHotendChangedCallback)
|
self._printer_output_devices[0].materialHotendChangedMessage(self._materialHotendChangedCallback)
|
||||||
|
@ -181,11 +181,10 @@ class MachineManager(QObject):
|
||||||
matching_extruder = extruder
|
matching_extruder = extruder
|
||||||
break
|
break
|
||||||
|
|
||||||
if matching_extruder and matching_extruder.findContainer({"type": "material"}).getMetaDataEntry("GUID") != material_id:
|
if matching_extruder and matching_extruder.material.getMetaDataEntry("GUID") != material_id:
|
||||||
# Save the material that needs to be changed. Multiple changes will be handled by the callback.
|
# Save the material that needs to be changed. Multiple changes will be handled by the callback.
|
||||||
variant_container = matching_extruder.findContainer({"type": "variant"})
|
if self._global_container_stack.getBottom().getMetaDataEntry("has_variants") and matching_extruder.variant:
|
||||||
if self._global_container_stack.getBottom().getMetaDataEntry("has_variants") and variant_container:
|
variant_id = self.getQualityVariantId(self._global_container_stack.getBottom(), matching_extruder.variant)
|
||||||
variant_id = self.getQualityVariantId(self._global_container_stack.getBottom(), variant_container)
|
|
||||||
for container in containers:
|
for container in containers:
|
||||||
if container.getMetaDataEntry("variant") == variant_id:
|
if container.getMetaDataEntry("variant") == variant_id:
|
||||||
self._auto_materials_changed[str(index)] = container.getId()
|
self._auto_materials_changed[str(index)] = container.getId()
|
||||||
|
@ -507,9 +506,8 @@ class MachineManager(QObject):
|
||||||
result = []
|
result = []
|
||||||
if ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() is not None:
|
if ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() is not None:
|
||||||
for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks():
|
for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks():
|
||||||
variant_container = stack.findContainer({"type": "variant"})
|
if stack.variant and stack.variant != self._empty_variant_container:
|
||||||
if variant_container and variant_container != self._empty_variant_container:
|
result.append(stack.variant.getId())
|
||||||
result.append(variant_container.getId())
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
|
@ -107,9 +107,9 @@ class ProfilesModel(InstanceContainersModel):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
#Quality has no value for layer height either. Get the layer height from somewhere lower in the stack.
|
#Quality has no value for layer height either. Get the layer height from somewhere lower in the stack.
|
||||||
skip_until_container = global_container_stack.findContainer({"type": "material"})
|
skip_until_container = global_container_stack.material
|
||||||
if not skip_until_container: #No material in stack.
|
if not skip_until_container: #No material in stack.
|
||||||
skip_until_container = global_container_stack.findContainer({"type": "variant"})
|
skip_until_container = global_container_stack.variant
|
||||||
if not skip_until_container: #No variant in stack.
|
if not skip_until_container: #No variant in stack.
|
||||||
skip_until_container = global_container_stack.getBottom()
|
skip_until_container = global_container_stack.getBottom()
|
||||||
item["layer_height"] = str(global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId())) + unit #Fall through to the currently loaded material.
|
item["layer_height"] = str(global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId())) + unit #Fall through to the currently loaded material.
|
||||||
|
|
|
@ -36,7 +36,7 @@ class UMOUpgradeSelection(MachineAction):
|
||||||
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
||||||
if global_container_stack:
|
if global_container_stack:
|
||||||
# Make sure there is a definition_changes container to store the machine settings
|
# Make sure there is a definition_changes container to store the machine settings
|
||||||
definition_changes_container = global_container_stack.findContainer({"type": "definition_changes"})
|
definition_changes_container = global_container_stack.definition_changes
|
||||||
if not definition_changes_container:
|
if not definition_changes_container:
|
||||||
definition_changes_container = self._createDefinitionChangesContainer(global_container_stack)
|
definition_changes_container = self._createDefinitionChangesContainer(global_container_stack)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue