Ensure that the intent model gets populated

CURA-6534
This commit is contained in:
Jaime van Kessel 2019-06-04 17:32:11 +02:00
parent 266cf52cbc
commit 2e7f8b066a

View file

@ -6,12 +6,31 @@ from PyQt5.QtCore.QObject import QObject
from UM.Qt.ListModel import ListModel from UM.Qt.ListModel import ListModel
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from UM.Settings.ContainerRegistry import ContainerRegistry
class IntentModel(ListModel): class IntentModel(ListModel):
NameRole = Qt.UserRole + 1
IdRole = Qt.UserRole + 2
def __init__(self, parent: Optional[QObject] = None) -> None: def __init__(self, parent: Optional[QObject] = None) -> None:
super().__init__(parent) 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() self._update()
def _update(self) -> None: def _update(self) -> None:
pass new_items = []
for container in ContainerRegistry.getInstance().findInstanceContainers(type="intent"):
new_items.append({"name": container.getName(), "id": container.getId()})
self.setItems(new_items)