added method for refreshing creators

This commit is contained in:
iLLiCiTiT 2021-07-01 20:08:43 +02:00
parent a635fc4b9a
commit e2187daeaf

View file

@ -185,6 +185,7 @@ class CreateDialog(QtWidgets.QDialog):
def refresh(self):
self._refresh_asset()
self._refresh_creators()
def _refresh_asset(self):
asset_name = self.dbcon.Session.get("AVALON_ASSET")
@ -216,6 +217,30 @@ class CreateDialog(QtWidgets.QDialog):
)
self._subset_names = set(subset_docs.distinct("name"))
def _refresh_creators(self):
# Refresh creators and add their families to list
existing_items = {}
old_families = set()
for row in range(self.family_model.rowCount()):
item = self.family_model.item(row, 0)
family = item.data(QtCore.Qt.DisplayRole)
existing_items[family] = item
old_families.add(family)
# Add new families
new_families = set()
for family, creator in self.controller.creators.items():
# TODO add details about creator
new_families.add(family)
if family not in existing_items:
item = QtGui.QStandardItem(family)
self.family_model.appendRow(item)
# Remove families that are no more available
for family in (old_families - new_families):
item = existing_items[family]
self.family_model.takeRow(item.row())
def _on_control_reset(self):
self.refresh()