From 433537a2f007fe321159caada0cfa82d52647e6d Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 6 Apr 2017 17:49:22 +0200 Subject: [PATCH 1/4] Add type metadata to Extruder/Global stack For backward compatibility with old code that still checks for "type". --- cura/Settings/ExtruderStack.py | 2 ++ cura/Settings/GlobalStack.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index 91b1725c4f..74e2cf8897 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -18,6 +18,8 @@ class ExtruderStack(CuraContainerStack): def __init__(self, container_id, *args, **kwargs): super().__init__(container_id, *args, **kwargs) + self.addMetaDataEntry("type", "extruder_train") # For backward compatibility + @override(ContainerStack) def setNextStack(self, stack): super().setNextStack(stack) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 806c37040f..03758d2599 100644 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -21,6 +21,8 @@ class GlobalStack(CuraContainerStack): def __init__(self, container_id: str, *args, **kwargs): super().__init__(container_id, *args, **kwargs) + self.addMetaDataEntry("type", "machine") # For backward compatibility + self._extruders = [] self._resolving_property = None From 6827849220c9aa5ea4bd9d50de39976235b2bbe6 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 6 Apr 2017 17:50:05 +0200 Subject: [PATCH 2/4] Un-deprecate activeMachine{Name,Id} Since it provides too much noise and I do not want to change the code that uses it right now. --- cura/Settings/MachineManager.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index f75c9d19a7..a7bdca0663 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -500,7 +500,6 @@ class MachineManager(QObject): return "" @pyqtProperty(str, notify = globalContainerChanged) - @deprecated("Use activeMachine.name", "2.6") def activeMachineName(self) -> str: if self._global_container_stack: return self._global_container_stack.getName() @@ -508,7 +507,6 @@ class MachineManager(QObject): return "" @pyqtProperty(str, notify = globalContainerChanged) - @deprecated("Use activeMachine.id", "2.6") def activeMachineId(self) -> str: if self._global_container_stack: return self._global_container_stack.getId() From df25fa9345ba968b70c96177501d3e6c87490a68 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 6 Apr 2017 17:50:43 +0200 Subject: [PATCH 3/4] Do not try to handle resolve manually in StartSliceJob Since the container stacks should now take care of it --- plugins/CuraEngineBackend/StartSliceJob.py | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index c8cbbe8040..f427317ec0 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -230,20 +230,7 @@ class StartSliceJob(Job): keys = stack.getAllKeys() settings = {} for key in keys: - # Use resolvement value if available, or take the value - resolved_value = stack.getProperty(key, "resolve") - if resolved_value is not None: - # There is a resolvement value. Check if we need to use it. - user_container = stack.findContainer({"type": "user"}) - quality_changes_container = stack.findContainer({"type": "quality_changes"}) - if user_container.hasProperty(key,"value") or quality_changes_container.hasProperty(key,"value"): - # Normal case - settings[key] = stack.getProperty(key, "value") - else: - settings[key] = resolved_value - else: - # Normal case - settings[key] = stack.getProperty(key, "value") + settings[key] = stack.getProperty(key, "value") Job.yieldThread() start_gcode = settings["machine_start_gcode"] From e1537d4dea5a8915dd90c26213b57c78be6b6246 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 6 Apr 2017 17:51:38 +0200 Subject: [PATCH 4/4] Fix quality selection menu to highlight the active entry Since we changed the "empty_quality_changes" to a proper empty container. --- resources/qml/Menus/ProfileMenu.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index 9dea8420bb..4a2908277e 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -19,7 +19,7 @@ Menu { text: model.name + " - " + model.layer_height checkable: true - checked: Cura.MachineManager.activeQualityChangesId == "empty_quality_changes" && Cura.MachineManager.activeQualityType == model.metadata.quality_type + checked: Cura.MachineManager.activeQualityChangesId == "" && Cura.MachineManager.activeQualityType == model.metadata.quality_type exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveQuality(model.id) }