diff options
author | Ghostkeeper <rubend@tutanota.com> | 2017-09-22 10:55:05 +0300 |
---|---|---|
committer | Ghostkeeper <rubend@tutanota.com> | 2017-09-22 10:55:05 +0300 |
commit | 12ccc8abe0002ab0db370f04551a518f7e43a3a5 (patch) | |
tree | aab45040e6c27b6452fe1ddef1157cad3d31137b /cura/Settings | |
parent | 1bb11b521e86250bdf81b949c83715cf3a64aa1e (diff) | |
parent | 21ea99d9f2c77242c17ee35317f403b23597343c (diff) |
Merge branch '3.0'
Diffstat (limited to 'cura/Settings')
-rwxr-xr-x | cura/Settings/MachineManager.py | 2 | ||||
-rw-r--r-- | cura/Settings/ProfilesModel.py | 1 | ||||
-rw-r--r-- | cura/Settings/QualityAndUserProfilesModel.py | 13 |
3 files changed, 13 insertions, 3 deletions
diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 4fb700e5ea..e807e49200 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -965,7 +965,7 @@ class MachineManager(QObject): if container_type == "quality": stack.quality.nameChanged.disconnect(self._onQualityNameChanged) stack.setQuality(container, postpone_emit = postpone_emit) - stack.qualityChanges.nameChanged.connect(self._onQualityNameChanged) + stack.quality.nameChanged.connect(self._onQualityNameChanged) elif container_type == "quality_changes" or container_type is None: # If the container is an empty container, we need to change the quality_changes. # Quality can never be set to empty. diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 4df362cdef..e39ed949b0 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -75,6 +75,7 @@ class ProfilesModel(InstanceContainersModel): # The actual list of quality profiles come from the first extruder in the extruder list.
result = QualityManager.getInstance().findAllQualitiesForMachineAndMaterials(global_stack_definition,
materials)
+
for quality in QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(
global_container_stack, extruder_stacks):
if quality not in result:
diff --git a/cura/Settings/QualityAndUserProfilesModel.py b/cura/Settings/QualityAndUserProfilesModel.py index b6ac3fb6d0..1fa45a5902 100644 --- a/cura/Settings/QualityAndUserProfilesModel.py +++ b/cura/Settings/QualityAndUserProfilesModel.py @@ -25,21 +25,30 @@ class QualityAndUserProfilesModel(ProfilesModel): machine_definition = quality_manager.getParentMachineDefinition(global_container_stack.getBottom())
quality_changes_list = quality_manager.findAllQualityChangesForMachine(machine_definition)
+ # Detecting if the machine has multiple extrusion
+ multiple_extrusion = False
# Get the list of extruders and place the selected extruder at the front of the list.
extruder_manager = ExtruderManager.getInstance()
active_extruder = extruder_manager.getActiveExtruderStack()
extruder_stacks = extruder_manager.getActiveExtruderStacks()
if active_extruder in extruder_stacks:
+ multiple_extrusion = True
extruder_stacks.remove(active_extruder)
extruder_stacks = [active_extruder] + extruder_stacks
# Fetch the list of useable qualities across all extruders.
# The actual list of quality profiles come from the first extruder in the extruder list.
- quality_list = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack,
+ quality_list = quality_manager.findAllUsableQualitiesForMachineAndExtruders(global_container_stack,
extruder_stacks)
# Filter the quality_change by the list of available quality_types
quality_type_set = set([x.getMetaDataEntry("quality_type") for x in quality_list])
- filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and qc.getMetaDataEntry("extruder") is None]
+
+ if multiple_extrusion:
+ # If the printer has multiple extruders then quality changes related to the current extruder are kept
+ filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and qc.getMetaDataEntry("extruder") == active_extruder.definition.getId()]
+ else:
+ # If not, the quality changes of the global stack are selected
+ filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set]
return quality_list + filtered_quality_changes
|