Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/cura
diff options
context:
space:
mode:
authorArjen Hiemstra <ahiemstra@heimr.nl>2016-10-13 21:54:26 +0300
committerArjen Hiemstra <ahiemstra@heimr.nl>2016-10-24 11:57:18 +0300
commite82b2c0f80c0621b7c1c8afbccc293689ae76ccc (patch)
treed128d61278f68af0bb02c153e076ee98fb04291f /cura
parent2bff94ba9f6c0293b4f6c6a1fd79548422639a4d (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.py7
-rw-r--r--cura/Settings/MachineManager.py9
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.