From d548404dfd4ae235b90861f4a65b4251e6c7ce4f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 29 Aug 2019 16:23:10 +0200 Subject: [PATCH] Fix typing issues --- cura/CuraApplication.py | 4 ++-- cura/Machines/Models/MaterialManagementModel.py | 5 ++++- cura/Machines/VariantNode.py | 3 ++- cura/Settings/MachineManager.py | 2 ++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index a70ca56da7..b704fb35b2 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -921,12 +921,12 @@ class CuraApplication(QtApplication): # Can't deprecate this function since the deprecation marker collides with pyqtSlot! @pyqtSlot(result = QObject) - def getMaterialManager(self, *args) -> "MaterialManager": + def getMaterialManager(self, *args) -> cura.Machines.MaterialManager.MaterialManager: return cura.Machines.MaterialManager.MaterialManager.getInstance() # Can't deprecate this function since the deprecation marker collides with pyqtSlot! @pyqtSlot(result = QObject) - def getQualityManager(self, *args) -> "QualityManager": + def getQualityManager(self, *args) -> cura.Machines.QualityManager.QualityManager: return cura.Machines.QualityManager.QualityManager.getInstance() def getIntentManager(self, *args) -> IntentManager: diff --git a/cura/Machines/Models/MaterialManagementModel.py b/cura/Machines/Models/MaterialManagementModel.py index 90e63e6240..f9af587293 100644 --- a/cura/Machines/Models/MaterialManagementModel.py +++ b/cura/Machines/Models/MaterialManagementModel.py @@ -152,7 +152,10 @@ class MaterialManagementModel(QObject): extruder_stack = application.getMachineManager().activeStack active_variant_name = extruder_stack.variant.getName() approximate_diameter = int(extruder_stack.approximateMaterialDiameter) - machine_node = ContainerTree.getInstance().machines[application.getGlobalContainerStack().definition.getId()] + global_container_stack = application.getGlobalContainerStack() + if not global_container_stack: + return "" + machine_node = ContainerTree.getInstance().machines[global_container_stack.definition.getId()] preferred_material_node = machine_node.variants[active_variant_name].preferredMaterial(approximate_diameter) # Create a new ID & new metadata for the new material. diff --git a/cura/Machines/VariantNode.py b/cura/Machines/VariantNode.py index 00be1e3807..2680c6d28b 100644 --- a/cura/Machines/VariantNode.py +++ b/cura/Machines/VariantNode.py @@ -14,6 +14,7 @@ if TYPE_CHECKING: from typing import Dict from cura.Machines.MachineNode import MachineNode + ## This class represents an extruder variant in the container tree. # # The subnodes of these nodes are materials. @@ -54,7 +55,7 @@ class VariantNode(ContainerNode): materials_per_base_file = {material["base_file"]: material for material in all_materials} materials_per_base_file.update({material["base_file"]: material for material in printer_specific_materials}) # Printer-specific profiles override global ones. materials_per_base_file.update({material["base_file"]: material for material in variant_specific_materials}) # Variant-specific profiles override all of those. - materials = materials_per_base_file.values() + materials = list(materials_per_base_file.values()) # Filter materials based on the exclude_materials property. filtered_materials = [material for material in materials if material["id"] not in self.machine.exclude_materials] diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 89838e6def..a7447aaa1e 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1515,6 +1515,8 @@ class MachineManager(QObject): # \param intent_category The intent category to change to. def setIntentByCategory(self, intent_category: str) -> None: global_stack = cura.CuraApplication.CuraApplication.getInstance().getGlobalContainerStack() + if global_stack is None: + return container_tree = ContainerTree.getInstance() for extruder in global_stack.extruderList: definition_id = global_stack.definition.getId()