Instead of searching for a container with type, we now use the newly introduced properties

CURA-3497
This commit is contained in:
Jaime van Kessel 2017-05-03 11:10:39 +02:00
parent f062322ebf
commit c8f823154c

View file

@ -472,7 +472,7 @@ class MachineManager(QObject):
@pyqtProperty(str, notify = activeMaterialChanged) @pyqtProperty(str, notify = activeMaterialChanged)
def activeMaterialName(self) -> str: def activeMaterialName(self) -> str:
if self._active_container_stack: if self._active_container_stack:
material = self._active_container_stack.findContainer({"type":"material"}) material = self._active_container_stack.material
if material: if material:
return material.getName() return material.getName()
@ -483,7 +483,7 @@ 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"}) variant_container = stack.variant
if variant_container and variant_container != self._empty_variant_container: if variant_container and variant_container != self._empty_variant_container:
result.append(variant_container.getName()) result.append(variant_container.getName())
@ -494,7 +494,7 @@ 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():
material_container = stack.findContainer(type="material") material_container = stack.material
if material_container and material_container != self._empty_material_container: if material_container and material_container != self._empty_material_container:
result.append(material_container.getName()) result.append(material_container.getName())
return result return result
@ -502,7 +502,7 @@ class MachineManager(QObject):
@pyqtProperty(str, notify=activeMaterialChanged) @pyqtProperty(str, notify=activeMaterialChanged)
def activeMaterialId(self) -> str: def activeMaterialId(self) -> str:
if self._active_container_stack: if self._active_container_stack:
material = self._active_container_stack.findContainer({"type": "material"}) material = self._active_container_stack.material
if material: if material:
return material.getId() return material.getId()
@ -516,7 +516,7 @@ class MachineManager(QObject):
result = {} result = {}
for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks(): for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks():
material_container = stack.findContainer(type = "material") material_container = stack.material
if not material_container: if not material_container:
continue continue
@ -535,13 +535,13 @@ class MachineManager(QObject):
if not self._global_container_stack: if not self._global_container_stack:
return 0 return 0
quality_changes = self._global_container_stack.findContainer({"type": "quality_changes"}) quality_changes = self._global_container_stack.qualityChanges
if quality_changes: if quality_changes:
value = self._global_container_stack.getRawProperty("layer_height", "value", skip_until_container = quality_changes.getId()) value = self._global_container_stack.getRawProperty("layer_height", "value", skip_until_container = quality_changes.getId())
if isinstance(value, SettingFunction): if isinstance(value, SettingFunction):
value = value(self._global_container_stack) value = value(self._global_container_stack)
return value return value
quality = self._global_container_stack.findContainer({"type": "quality"}) quality = self._global_container_stack.quality
if quality: if quality:
value = self._global_container_stack.getRawProperty("layer_height", "value", skip_until_container = quality.getId()) value = self._global_container_stack.getRawProperty("layer_height", "value", skip_until_container = quality.getId())
if isinstance(value, SettingFunction): if isinstance(value, SettingFunction):
@ -555,7 +555,7 @@ class MachineManager(QObject):
@pyqtProperty(str, notify=activeQualityChanged) @pyqtProperty(str, notify=activeQualityChanged)
def activeQualityMaterialId(self) -> str: def activeQualityMaterialId(self) -> str:
if self._active_container_stack: if self._active_container_stack:
quality = self._active_container_stack.findContainer({"type": "quality"}) quality = self._active_container_stack.quality
if quality: if quality:
material_id = quality.getMetaDataEntry("material") material_id = quality.getMetaDataEntry("material")
if material_id: if material_id:
@ -572,10 +572,10 @@ class MachineManager(QObject):
@pyqtProperty(str, notify=activeQualityChanged) @pyqtProperty(str, notify=activeQualityChanged)
def activeQualityName(self): def activeQualityName(self):
if self._active_container_stack and self._global_container_stack: if self._active_container_stack and self._global_container_stack:
quality = self._global_container_stack.findContainer({"type": "quality_changes"}) quality = self._global_container_stack.qualityChanges
if quality and quality != self._empty_quality_changes_container: if quality and quality != self._empty_quality_changes_container:
return quality.getName() return quality.getName()
quality = self._active_container_stack.findContainer({"type": "quality"}) quality = self._active_container_stack.quality
if quality: if quality:
return quality.getName() return quality.getName()
return "" return ""
@ -583,10 +583,10 @@ class MachineManager(QObject):
@pyqtProperty(str, notify=activeQualityChanged) @pyqtProperty(str, notify=activeQualityChanged)
def activeQualityId(self): def activeQualityId(self):
if self._active_container_stack: if self._active_container_stack:
quality = self._active_container_stack.findContainer({"type": "quality_changes"}) quality = self._active_container_stack.qualityChanges
if quality and quality != self._empty_quality_changes_container: if quality and quality != self._empty_quality_changes_container:
return quality.getId() return quality.getId()
quality = self._active_container_stack.findContainer({"type": "quality"}) quality = self._active_container_stack.quality
if quality: if quality:
return quality.getId() return quality.getId()
return "" return ""
@ -594,10 +594,10 @@ class MachineManager(QObject):
@pyqtProperty(str, notify=activeQualityChanged) @pyqtProperty(str, notify=activeQualityChanged)
def globalQualityId(self): def globalQualityId(self):
if self._global_container_stack: if self._global_container_stack:
quality = self._global_container_stack.findContainer({"type": "quality_changes"}) quality = self._global_container_stack.qualityChanges
if quality and quality != self._empty_quality_changes_container: if quality and quality != self._empty_quality_changes_container:
return quality.getId() return quality.getId()
quality = self._global_container_stack.findContainer({"type": "quality"}) quality = self._global_container_stack.quality
if quality: if quality:
return quality.getId() return quality.getId()
return "" return ""
@ -605,7 +605,7 @@ class MachineManager(QObject):
@pyqtProperty(str, notify = activeQualityChanged) @pyqtProperty(str, notify = activeQualityChanged)
def activeQualityType(self): def activeQualityType(self):
if self._active_container_stack: if self._active_container_stack:
quality = self._active_container_stack.findContainer(type = "quality") quality = self._active_container_stack.quality
if quality: if quality:
return quality.getMetaDataEntry("quality_type") return quality.getMetaDataEntry("quality_type")
return "" return ""
@ -613,7 +613,7 @@ class MachineManager(QObject):
@pyqtProperty(bool, notify = activeQualityChanged) @pyqtProperty(bool, notify = activeQualityChanged)
def isActiveQualitySupported(self): def isActiveQualitySupported(self):
if self._active_container_stack: if self._active_container_stack:
quality = self._active_container_stack.findContainer(type = "quality") quality = self._active_container_stack.quality
if quality: if quality:
return Util.parseBool(quality.getMetaDataEntry("supported", True)) return Util.parseBool(quality.getMetaDataEntry("supported", True))
return False return False
@ -628,7 +628,7 @@ class MachineManager(QObject):
def activeQualityContainerId(self): def activeQualityContainerId(self):
# We're using the active stack instead of the global stack in case the list of qualities differs per extruder # We're using the active stack instead of the global stack in case the list of qualities differs per extruder
if self._global_container_stack: if self._global_container_stack:
quality = self._active_container_stack.findContainer(type = "quality") quality = self._active_container_stack.quality
if quality: if quality:
return quality.getId() return quality.getId()
return "" return ""
@ -636,7 +636,7 @@ class MachineManager(QObject):
@pyqtProperty(str, notify = activeQualityChanged) @pyqtProperty(str, notify = activeQualityChanged)
def activeQualityChangesId(self): def activeQualityChangesId(self):
if self._active_container_stack: if self._active_container_stack:
changes = self._active_container_stack.findContainer(type = "quality_changes") changes = self._active_container_stack.qualityChanges
if changes: if changes:
return changes.getId() return changes.getId()
return "" return ""
@ -674,9 +674,9 @@ class MachineManager(QObject):
Logger.log("d", "Attempting to change the active material to %s", material_id) Logger.log("d", "Attempting to change the active material to %s", material_id)
old_material = self._active_container_stack.findContainer({"type": "material"}) old_material = self._active_container_stack.material
old_quality = self._active_container_stack.findContainer({"type": "quality"}) old_quality = self._active_container_stack.quality
old_quality_changes = self._active_container_stack.findContainer({"type": "quality_changes"}) old_quality_changes = self._active_container_stack.qualityChanges
if not old_material: if not old_material:
Logger.log("w", "While trying to set the active material, no material was found to replace it.") Logger.log("w", "While trying to set the active material, no material was found to replace it.")
return return
@ -737,8 +737,8 @@ class MachineManager(QObject):
if not containers or not self._active_container_stack: if not containers or not self._active_container_stack:
return return
Logger.log("d", "Attempting to change the active variant to %s", variant_id) Logger.log("d", "Attempting to change the active variant to %s", variant_id)
old_variant = self._active_container_stack.findContainer({"type": "variant"}) old_variant = self._active_container_stack.variant
old_material = self._active_container_stack.findContainer({"type": "material"}) old_material = self._active_container_stack.material
if old_variant: if old_variant:
self.blurSettings.emit() self.blurSettings.emit()
variant_index = self._active_container_stack.getContainerIndex(old_variant) variant_index = self._active_container_stack.getContainerIndex(old_variant)
@ -829,7 +829,7 @@ class MachineManager(QObject):
stacks = [global_container_stack] stacks = [global_container_stack]
for stack in stacks: for stack in stacks:
material = stack.findContainer(type="material") material = stack.material
quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material])
if not quality: #No quality profile is found for this quality type. if not quality: #No quality profile is found for this quality type.
quality = self._empty_quality_container quality = self._empty_quality_container
@ -866,7 +866,7 @@ class MachineManager(QObject):
else: else:
Logger.log("e", "Could not find the global quality changes container with name %s", quality_changes_name) Logger.log("e", "Could not find the global quality changes container with name %s", quality_changes_name)
return None return None
material = global_container_stack.findContainer(type="material") material = global_container_stack.material
# For the global stack, find a quality which matches the quality_type in # For the global stack, find a quality which matches the quality_type in
# the quality changes profile and also satisfies any material constraints. # the quality changes profile and also satisfies any material constraints.
@ -889,7 +889,7 @@ class MachineManager(QObject):
else: else:
quality_changes = global_quality_changes quality_changes = global_quality_changes
material = stack.findContainer(type="material") material = stack.material
quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material])
if not quality: #No quality profile found for this quality type. if not quality: #No quality profile found for this quality type.
quality = self._empty_quality_container quality = self._empty_quality_container
@ -924,7 +924,7 @@ class MachineManager(QObject):
@pyqtProperty(str, notify = activeVariantChanged) @pyqtProperty(str, notify = activeVariantChanged)
def activeVariantName(self): def activeVariantName(self):
if self._active_container_stack: if self._active_container_stack:
variant = self._active_container_stack.findContainer({"type": "variant"}) variant = self._active_container_stack.variant
if variant: if variant:
return variant.getName() return variant.getName()
@ -933,7 +933,7 @@ class MachineManager(QObject):
@pyqtProperty(str, notify = activeVariantChanged) @pyqtProperty(str, notify = activeVariantChanged)
def activeVariantId(self): def activeVariantId(self):
if self._active_container_stack: if self._active_container_stack:
variant = self._active_container_stack.findContainer({"type": "variant"}) variant = self._active_container_stack.variant
if variant: if variant:
return variant.getId() return variant.getId()
@ -979,7 +979,7 @@ class MachineManager(QObject):
@pyqtProperty(str, notify = activeVariantChanged) @pyqtProperty(str, notify = activeVariantChanged)
def activeQualityVariantId(self): def activeQualityVariantId(self):
if self._active_container_stack: if self._active_container_stack:
variant = self._active_container_stack.findContainer({"type": "variant"}) variant = self._active_container_stack.variant
if variant: if variant:
return self.getQualityVariantId(self._global_container_stack.getBottom(), variant) return self.getQualityVariantId(self._global_container_stack.getBottom(), variant)
return "" return ""