diff --git a/cura/Machines/Models/IntentModel.py b/cura/Machines/Models/IntentModel.py index 5a3f5a974e..47657a48e6 100644 --- a/cura/Machines/Models/IntentModel.py +++ b/cura/Machines/Models/IntentModel.py @@ -6,12 +6,31 @@ from PyQt5.QtCore.QObject import QObject from UM.Qt.ListModel import ListModel from PyQt5.QtCore import Qt +from UM.Settings.ContainerRegistry import ContainerRegistry + class IntentModel(ListModel): + NameRole = Qt.UserRole + 1 + IdRole = Qt.UserRole + 2 + def __init__(self, parent: Optional[QObject] = None) -> None: super().__init__(parent) + self.addRoleName(self.NameRole, "name") + self.addRoleName(self.IdRole, "id") + + ContainerRegistry.getInstance().containerAdded.connect(self._onChanged) + ContainerRegistry.getInstance().containerRemoved.connect(self._onChanged) + self._update() + def _onChanged(self, container): + if container.getMetaDataEntry("type") == "intent": + self._update() + def _update(self) -> None: - pass \ No newline at end of file + new_items = [] + for container in ContainerRegistry.getInstance().findInstanceContainers(type="intent"): + new_items.append({"name": container.getName(), "id": container.getId()}) + + self.setItems(new_items)