mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-12 00:29:01 +08:00
26 lines
1.1 KiB
Python
26 lines
1.1 KiB
Python
# Copyright (c) 2017 Ultimaker B.V.
|
|
# Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
from UM.Settings.ContainerRegistry import ContainerRegistry #To listen for changes to the materials.
|
|
from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel #We're extending this class.
|
|
|
|
## A model that shows a list of currently valid materials.
|
|
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._update()
|
|
|
|
def _onContainerChanged(self, container):
|
|
if container.getMetaDataEntry("type", "") == "material":
|
|
super()._onContainerChanged(container)
|