diff options
author | Arjen Hiemstra <ahiemstra@heimr.nl> | 2016-10-13 21:54:26 +0300 |
---|---|---|
committer | Arjen Hiemstra <ahiemstra@heimr.nl> | 2016-10-24 11:57:18 +0300 |
commit | e82b2c0f80c0621b7c1c8afbccc293689ae76ccc (patch) | |
tree | d128d61278f68af0bb02c153e076ee98fb04291f /cura | |
parent | 2bff94ba9f6c0293b4f6c6a1fd79548422639a4d (diff) |
Add support for global quality profiles
Instead of using one of the extruder profiles as global quality, use
proper global qualities.
Contributes to CURA-2646
Diffstat (limited to 'cura')
-rw-r--r-- | cura/QualityManager.py | 7 | ||||
-rw-r--r-- | cura/Settings/MachineManager.py | 9 |
2 files changed, 11 insertions, 5 deletions
diff --git a/cura/QualityManager.py b/cura/QualityManager.py index 09e9d283ed..7354bfbb4f 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -82,8 +82,9 @@ class QualityManager: # \param material_containers (Optional) \type{List[ContainerInstance]} If nothing is specified then
# the current set of selected materials is used.
# \return the matching quality container \type{ContainerInstance}
- def findQualityByQualityType(self, quality_type, machine_definition=None, material_containers=None):
- criteria = {"type": "quality"}
+ def findQualityByQualityType(self, quality_type, machine_definition=None, material_containers=None, **kwargs):
+ criteria = kwargs
+ criteria["type"] = "quality"
if quality_type:
criteria["quality_type"] = quality_type
result = self._getFilteredContainersForStack(machine_definition, material_containers, **criteria)
@@ -218,7 +219,7 @@ class QualityManager: result = []
for container in containers:
# If the machine specifies we should filter by material, exclude containers that do not match any active material.
- if filter_by_material and container.getMetaDataEntry("material") not in material_ids:
+ if filter_by_material and container.getMetaDataEntry("material") not in material_ids and not "global_quality" in kwargs:
continue
result.append(container)
return result
diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 326a011562..359aea4268 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -769,8 +769,13 @@ class MachineManager(QObject): if extruder_stacks: # Add an extra entry for the global stack. - result.append({"stack": global_container_stack, "quality": result[0]["quality"], - "quality_changes": empty_quality_changes}) + global_quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [], global_quality = "True") + + if not global_quality: + global_quality = self._empty_quality_container + + result.append({"stack": global_container_stack, "quality": global_quality, "quality_changes": empty_quality_changes}) + return result ## Determine the quality and quality changes settings for the current machine for a quality changes name. |