From 624bbbeb4ae67059b486d830f6e11e928d37eb98 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 7 Jun 2018 11:36:30 +0200 Subject: [PATCH] Account for the fact that createMachine can return None Contributes to issue CURA-5337. See also #3787. --- cura/Settings/MachineManager.py | 4 +++- plugins/3MFReader/ThreeMFWorkspaceReader.py | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 5c6769bc7d..124cff73d8 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1236,7 +1236,7 @@ class MachineManager(QObject): ## Given a printer definition name, select the right machine instance. In case it doesn't exist, create a new # instance with the same network key. @pyqtSlot(str) - def switchPrinterType(self, machine_name: str): + def switchPrinterType(self, machine_name: str) -> None: # Don't switch if the user tries to change to the same type of printer if self.activeMachineDefinitionName == machine_name: return @@ -1247,6 +1247,8 @@ class MachineManager(QObject): # If there is no machine, then create a new one and set it to the non-hidden instance if not new_machine: new_machine = CuraStackBuilder.createMachine(machine_definition_id + "_sync", machine_definition_id) + if not new_machine: + return new_machine.addMetaDataEntry("um_network_key", self.activeMachineNetworkKey) new_machine.addMetaDataEntry("connect_group_name", self.activeMachineNetworkGroupName) new_machine.addMetaDataEntry("hidden", False) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 76afb6b47e..9375e5d6ee 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -606,9 +606,10 @@ class ThreeMFWorkspaceReader(WorkspaceReader): machine_name = self._container_registry.uniqueName(self._machine_info.name) global_stack = CuraStackBuilder.createMachine(machine_name, self._machine_info.definition_id) - extruder_stack_dict = global_stack.extruders + if global_stack: #Only switch if creating the machine was successful. + extruder_stack_dict = global_stack.extruders - self._container_registry.addContainer(global_stack) + self._container_registry.addContainer(global_stack) else: # Find the machine global_stack = self._container_registry.findContainerStacks(name = self._machine_info.name, type = "machine")[0]