diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 795c254d8c..41f5fbc4b2 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -60,7 +60,7 @@ from cura.Machines.Models.CustomQualityProfilesModel import CustomQualityProfile from cura.Machines.Models.Other.MultiBuildPlateModel import MultiBuildPlateModel -from cura.Settings.MaterialsModel import MaterialsModel, BrandMaterialsModel, GenericMaterialsModel, NewMaterialsModel +from cura.Machines.Models.MaterialsModel import BrandMaterialsModel, GenericMaterialsModel, MaterialsModel from cura.Settings.SettingInheritanceManager import SettingInheritanceManager from cura.Settings.SimpleModeSettingsManager import SimpleModeSettingsManager @@ -944,7 +944,7 @@ class CuraApplication(QtApplication): qmlRegisterType(GenericMaterialsModel, "Cura", 1, 0, "GenericMaterialsModel") qmlRegisterType(BrandMaterialsModel, "Cura", 1, 0, "BrandMaterialsModel") - qmlRegisterType(NewMaterialsModel, "Cura", 1, 0, "NewMaterialsModel") + qmlRegisterType(MaterialsModel, "Cura", 1, 0, "MaterialsModel") # TODO: make this singleton? qmlRegisterType(QualityManagementModel, "Cura", 1, 0, "QualityManagementModel") @@ -953,7 +953,6 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(CustomQualityProfilesModel, "Cura", 1, 0, "CustomQualityProfilesModel", self.getCustomQualityProfilesModel) qmlRegisterType(NozzleModel, "Cura", 1, 0, "NozzleModel") - qmlRegisterType(MaterialsModel, "Cura", 1, 0, "MaterialsModel") qmlRegisterType(MaterialSettingsVisibilityHandler, "Cura", 1, 0, "MaterialSettingsVisibilityHandler") qmlRegisterType(QualitySettingsModel, "Cura", 1, 0, "QualitySettingsModel") qmlRegisterType(MachineNameValidator, "Cura", 1, 0, "MachineNameValidator") diff --git a/cura/Settings/MaterialsModel.py b/cura/Machines/Models/MaterialsModel.py similarity index 88% rename from cura/Settings/MaterialsModel.py rename to cura/Machines/Models/MaterialsModel.py index 72b39a90aa..7d390277d6 100644 --- a/cura/Settings/MaterialsModel.py +++ b/cura/Machines/Models/MaterialsModel.py @@ -189,7 +189,7 @@ class BrandMaterialsModel(ListModel): # # This model is for the Material management page. # -class NewMaterialsModel(ListModel): +class MaterialsModel(ListModel): RootMaterialIdRole = Qt.UserRole + 1 DisplayNameRole = Qt.UserRole + 2 BrandRole = Qt.UserRole + 3 @@ -272,35 +272,3 @@ class NewMaterialsModel(ListModel): material_list = sorted(material_list, key = lambda k: (k["brand"], k["name"])) self.setItems(material_list) - - -## A model that shows a list of currently valid materials. Used by management page. -class MaterialsModel(InstanceContainersModel): - def __init__(self, parent = None): - super().__init__(parent) - - ContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerMetaDataChanged) - - ## Called when the metadata of the container was changed. - # - # This makes sure that we only update when it was a material that changed. - # - # \param container The container whose metadata was changed. - def _onContainerMetaDataChanged(self, container): - if container.getMetaDataEntry("type") == "material": #Only need to update if a material was changed. - self._container_change_timer.start() - - def _onContainerChanged(self, container): - if container.getMetaDataEntry("type", "") == "material": - super()._onContainerChanged(container) - - ## Group brand together - def _sortKey(self, item) -> List[Any]: - result = [] - result.append(item["metadata"]["brand"]) - result.append(item["metadata"]["material"]) - result.append(item["metadata"]["name"]) - result.append(item["metadata"]["color_name"]) - result.append(item["metadata"]["id"]) - result.extend(super()._sortKey(item)) - return result diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index 4eddc45d76..8d14ada759 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -17,7 +17,7 @@ Item UM.I18nCatalog { id: catalog; name: "cura"; } - Cura.NewMaterialsModel { + Cura.MaterialsModel { id: materialsModel }