diff --git a/cura/Machines/Models/BaseMaterialsModel.py b/cura/Machines/Models/BaseMaterialsModel.py index 4759c8b5b0..4d0b9eea36 100644 --- a/cura/Machines/Models/BaseMaterialsModel.py +++ b/cura/Machines/Models/BaseMaterialsModel.py @@ -21,10 +21,11 @@ class BaseMaterialsModel(ListModel): MaterialRole = Qt.UserRole + 5 ColorRole = Qt.UserRole + 6 ContainerNodeRole = Qt.UserRole + 7 + CompatibleRole = Qt.UserRole + 8 extruderPositionChanged = pyqtSignal() - def __init__(self, parent = None): + def __init__(self, parent = None) -> None: super().__init__(parent) self._application = Application.getInstance() self._machine_manager = self._application.getMachineManager() @@ -36,6 +37,7 @@ class BaseMaterialsModel(ListModel): self.addRoleName(self.MaterialRole, "material") self.addRoleName(self.ColorRole, "color_name") self.addRoleName(self.ContainerNodeRole, "container_node") + self.addRoleName(self.CompatibleRole, "compatible") self._extruder_position = 0 self._extruder_stack = None diff --git a/cura/Machines/Models/BrandMaterialsModel.py b/cura/Machines/Models/BrandMaterialsModel.py index 236f105d12..5adc3d10fd 100644 --- a/cura/Machines/Models/BrandMaterialsModel.py +++ b/cura/Machines/Models/BrandMaterialsModel.py @@ -122,7 +122,8 @@ class BrandMaterialsModel(ListModel): "brand": metadata["brand"], "material": metadata["material"], "color_name": metadata["color_name"], - "container_node": container_node + "container_node": container_node, + "compatible": metadata.get("compatible", "unknown") } brand_group_dict[brand][material_type].append(item) diff --git a/cura/Machines/Models/GenericMaterialsModel.py b/cura/Machines/Models/GenericMaterialsModel.py index 2fac919f3e..48f4c4ea50 100644 --- a/cura/Machines/Models/GenericMaterialsModel.py +++ b/cura/Machines/Models/GenericMaterialsModel.py @@ -19,7 +19,7 @@ class GenericMaterialsModel(BaseMaterialsModel): self._material_manager.materialsUpdated.connect(self._update) #Update when the list of materials changes. self._update() - def _update(self): + def _update(self) -> None: Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__)) global_stack = self._machine_manager.activeMachine @@ -51,7 +51,8 @@ class GenericMaterialsModel(BaseMaterialsModel): "brand": metadata["brand"], "material": metadata["material"], "color_name": metadata["color_name"], - "container_node": container_node + "container_node": container_node, + "compatible": metadata.get("compatible", "unknown") } item_list.append(item) diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index 64b3130724..c2de8f31e9 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -22,6 +22,7 @@ Menu text: model.name checkable: true checked: model.root_material_id == Cura.MachineManager.currentRootMaterialId[extruderIndex] + enabled: model.compatible exclusiveGroup: group onTriggered: { diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 0e5ac852e8..d39e2b9416 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -1,5 +1,5 @@ -// Copyright (c) 2017 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. +//Copyright (c) 2018 Ultimaker B.V. +//Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 import QtQuick.Controls 1.1 @@ -402,7 +402,7 @@ Column property var valueError: !isMaterialSupported() property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported - function isMaterialSupported () + function isMaterialSupported() { if (!hasActiveExtruder) {