mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-11-02 20:52:20 -07:00
Fix switching to quality changes profiles
It would put the global quality changes profile in each of the extruders, thus not giving any per-extruder settings. Contributes to issue CURA-3935.
This commit is contained in:
parent
f4e620c458
commit
ebd2f0b415
1 changed files with 21 additions and 2 deletions
|
|
@ -54,9 +54,16 @@ class QualityManager:
|
||||||
# specified then the currently selected machine definition is used..
|
# specified then the currently selected machine definition is used..
|
||||||
# \return the matching quality changes containers \type{List[InstanceContainer]}
|
# \return the matching quality changes containers \type{List[InstanceContainer]}
|
||||||
def findQualityChangesByName(self, quality_changes_name: str, machine_definition: Optional["DefinitionContainerInterface"] = None):
|
def findQualityChangesByName(self, quality_changes_name: str, machine_definition: Optional["DefinitionContainerInterface"] = None):
|
||||||
result = self.findAllQualityChangesForMachine(machine_definition)
|
if not machine_definition:
|
||||||
result = [quality_change for quality_change in result if quality_change.getName() == quality_changes_name]
|
global_stack = Application.getGlobalContainerStack()
|
||||||
|
if not global_stack:
|
||||||
|
return [] #No stack, so no current definition could be found, so there are no quality changes either.
|
||||||
|
machine_definition = global_stack.definition
|
||||||
|
|
||||||
|
result = self.findAllQualityChangesForMachine(machine_definition)
|
||||||
|
for extruder in self.findAllExtruderDefinitionsForMachine(machine_definition):
|
||||||
|
result.extend(self.findAllQualityChangesForExtruder(extruder))
|
||||||
|
result = [quality_change for quality_change in result if quality_change.getName() == quality_changes_name]
|
||||||
return result
|
return result
|
||||||
|
|
||||||
## Fetch the list of available quality types for this combination of machine definition and materials.
|
## Fetch the list of available quality types for this combination of machine definition and materials.
|
||||||
|
|
@ -137,6 +144,18 @@ class QualityManager:
|
||||||
quality_changes_list = ContainerRegistry.getInstance().findInstanceContainers(**filter_dict)
|
quality_changes_list = ContainerRegistry.getInstance().findInstanceContainers(**filter_dict)
|
||||||
return quality_changes_list
|
return quality_changes_list
|
||||||
|
|
||||||
|
def findAllExtruderDefinitionsForMachine(self, machine_definition: "DefinitionContainerInterface") -> List["DefinitionContainerInterface"]:
|
||||||
|
filter_dict = { "machine": machine_definition.getId() }
|
||||||
|
return ContainerRegistry.getInstance().findDefinitionContainers(**filter_dict)
|
||||||
|
|
||||||
|
## Find all quality changes for a given extruder.
|
||||||
|
#
|
||||||
|
# \param extruder_definition The extruder to find the quality changes for.
|
||||||
|
# \return The list of quality changes for the given extruder.
|
||||||
|
def findAllQualityChangesForExtruder(self, extruder_definition: "DefinitionContainerInterface") -> List[InstanceContainer]:
|
||||||
|
filter_dict = {"type": "quality_changes", "extruder": extruder_definition.getId()}
|
||||||
|
return ContainerRegistry.getInstance().findInstanceContainers(**filter_dict)
|
||||||
|
|
||||||
## Find all usable qualities for a machine and extruders.
|
## Find all usable qualities for a machine and extruders.
|
||||||
#
|
#
|
||||||
# Finds all of the qualities for this combination of machine and extruders.
|
# Finds all of the qualities for this combination of machine and extruders.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue