diff --git a/cura/Settings/CuraStackBuilder.py b/cura/Settings/CuraStackBuilder.py index 61a04e1be6..c8287696ae 100644 --- a/cura/Settings/CuraStackBuilder.py +++ b/cura/Settings/CuraStackBuilder.py @@ -58,7 +58,10 @@ class CuraStackBuilder: # Create ExtruderStacks extruder_dict = machine_definition.getMetaDataEntry("machine_extruder_trains") for position in extruder_dict: - cls.createExtruderStackWithDefaultSetup(new_global_stack, position) + try: + cls.createExtruderStackWithDefaultSetup(new_global_stack, position) + except IndexError: + return None for new_extruder in new_global_stack.extruders.values(): # Only register the extruders if we're sure that all of them are correct. registry.addContainer(new_extruder) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index b70cdfd1ec..6b1460b17b 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -347,9 +347,9 @@ class MachineManager(QObject): return cast(GlobalStack, machine) return None - @pyqtSlot(str) - @pyqtSlot(str, str) - def addMachine(self, definition_id: str, name: Optional[str] = None) -> None: + @pyqtSlot(str, result=bool) + @pyqtSlot(str, str, result = bool) + def addMachine(self, definition_id: str, name: Optional[str] = None) -> bool: Logger.log("i", "Trying to add a machine with the definition id [%s]", definition_id) if name is None: definitions = CuraContainerRegistry.getInstance().findDefinitionContainers(id = definition_id) @@ -364,6 +364,8 @@ class MachineManager(QObject): self.setActiveMachine(new_stack.getId()) else: Logger.log("w", "Failed creating a new machine!") + return False + return True def _checkStacksHaveErrors(self) -> bool: time_start = time.time() diff --git a/resources/qml/WelcomePages/AddNetworkOrLocalPrinterContent.qml b/resources/qml/WelcomePages/AddNetworkOrLocalPrinterContent.qml index 81dd345f3f..e3018a6825 100644 --- a/resources/qml/WelcomePages/AddNetworkOrLocalPrinterContent.qml +++ b/resources/qml/WelcomePages/AddNetworkOrLocalPrinterContent.qml @@ -151,9 +151,10 @@ Item // Create a local printer const localPrinterItem = addLocalPrinterDropDown.contentItem.currentItem const printerName = addLocalPrinterDropDown.contentItem.printerName - Cura.MachineManager.addMachine(localPrinterItem.id, printerName) - - base.showNextPage() + if(Cura.MachineManager.addMachine(localPrinterItem.id, printerName)) + { + base.showNextPage() + } } } }