From 75931192f6ee2d8e0f781908505687fc85fbd7d9 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 28 Mar 2017 17:46:28 +0200 Subject: [PATCH] Allow setting Definition and setting Definition by ID To match the other properties --- cura/Settings/GlobalStack.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index f429e16e38..d5c49614d6 100644 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -106,7 +106,17 @@ class GlobalStack(ContainerStack): def definitionChanges(self) -> InstanceContainer: return self._containers[_ContainerIndexes.DefinitionChanges] - @pyqtProperty(DefinitionContainer) + def setDefinition(self, new_definition: DefinitionContainer) -> None: + self.replaceContainer(_ContainerIndexes.Definition, new_definition) + + def setDefinitionById(self, new_definition_id: str) -> None: + new_definition = ContainerRegistry.getInstance().findDefinitionContainers(id = new_definition_id) + if new_definition: + self.setDefinition(new_definition[0]) + else: + raise Exceptions.InvalidContainerError("Could not find container with id {id}".format(id = new_definition_id)) + + @pyqtProperty(DefinitionContainer, fset = setDefinition, notify = pyqtContainersChanged) def definition(self) -> DefinitionContainer: return self._containers[_ContainerIndexes.Definition]