diff --git a/cura/MachineManagerModel.py b/cura/MachineManagerModel.py index 2df28c1f92..da14864118 100644 --- a/cura/MachineManagerModel.py +++ b/cura/MachineManagerModel.py @@ -2,6 +2,7 @@ from PyQt5.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal from UM.Application import Application from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.Settings.ContainerStack import ContainerStack class MachineManagerModel(QObject): def __init__(self, parent = None): @@ -19,6 +20,17 @@ class MachineManagerModel(QObject): if containers: Application.getInstance().setGlobalContainerStack(containers[0]) + @pyqtSlot(str, str) + def addMachine(self,name, definition_id): + definitions = ContainerRegistry.getInstance().findDefinitionContainers(id=definition_id) + if definitions: + new_global_stack = ContainerStack(name) + new_global_stack.addMetaDataEntry("type", "machine") + ContainerRegistry.getInstance().addContainer(new_global_stack) + # If a definition is found, its a list. Should only have one item. + new_global_stack.addContainer(definitions[0]) + Application.getInstance().setGlobalContainerStack(new_global_stack) + @pyqtProperty(str, notify = globalContainerChanged) def activeMachineName(self): return Application.getInstance().getGlobalContainerStack().getName() diff --git a/resources/qml/AddMachineDialog.qml b/resources/qml/AddMachineDialog.qml index 476df2178c..4a5e14f183 100644 --- a/resources/qml/AddMachineDialog.qml +++ b/resources/qml/AddMachineDialog.qml @@ -161,7 +161,7 @@ UM.Dialog { base.visible = false var item = machineList.model.getItem(machineList.currentIndex); - machineList.model.setNewGlobalStackFromDefinition(machineName.text, item.id) + Cura.MachineManager.addMachine(machineName.text, item.id) } }