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
diff options
context:
space:
mode:
authorGhostkeeper <rubend@tutanota.com>2017-09-22 10:55:05 +0300
committerGhostkeeper <rubend@tutanota.com>2017-09-22 10:55:05 +0300
commit12ccc8abe0002ab0db370f04551a518f7e43a3a5 (patch)
treeaab45040e6c27b6452fe1ddef1157cad3d31137b /cura/Settings
parent1bb11b521e86250bdf81b949c83715cf3a64aa1e (diff)
parent21ea99d9f2c77242c17ee35317f403b23597343c (diff)
Merge branch '3.0'
Diffstat (limited to 'cura/Settings')
-rwxr-xr-xcura/Settings/MachineManager.py2
-rw-r--r--cura/Settings/ProfilesModel.py1
-rw-r--r--cura/Settings/QualityAndUserProfilesModel.py13
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