asset underline colors can be cleared again

This commit is contained in:
Jakub Trllo 2022-02-15 18:14:48 +01:00
parent 83b19949f9
commit cd6dc59f14
3 changed files with 16 additions and 17 deletions

View file

@ -288,9 +288,7 @@ class LoaderWindow(QtWidgets.QDialog):
on selection change so they match current selection.
"""
# TODO do not touch inner attributes of asset widget
last_asset_ids = self.data["state"]["assetIds"]
if last_asset_ids:
self._assets_widget.clear_underlines()
self._assets_widget.clear_underlines()
def _assetschanged(self):
"""Selected assets have changed"""
@ -329,6 +327,7 @@ class LoaderWindow(QtWidgets.QDialog):
asset_ids = self.data["state"]["assetIds"]
# Skip setting colors if not asset multiselection
if not asset_ids or len(asset_ids) < 2:
self.clear_assets_underlines()
self._versionschanged()
return

View file

@ -524,9 +524,13 @@ class SubsetsModel(TreeModel, BaseRepresentationModel):
return
self._fill_subset_items(
asset_docs_by_id, subset_docs_by_id, last_versions_by_subset_id,
asset_docs_by_id,
subset_docs_by_id,
last_versions_by_subset_id,
repre_info_by_version_id
)
self.endResetModel()
self.refreshed.emit(True)
def create_multiasset_group(
self, subset_name, asset_ids, subset_counter, parent_item=None
@ -538,7 +542,6 @@ class SubsetsModel(TreeModel, BaseRepresentationModel):
merge_group.update({
"subset": "{} ({})".format(subset_name, len(asset_ids)),
"isMerged": True,
"childRow": 0,
"subsetColor": subset_color,
"assetIds": list(asset_ids),
"icon": qtawesome.icon(
@ -547,7 +550,6 @@ class SubsetsModel(TreeModel, BaseRepresentationModel):
)
})
subset_counter += 1
self.add_child(merge_group, parent_item)
return merge_group
@ -567,8 +569,7 @@ class SubsetsModel(TreeModel, BaseRepresentationModel):
group_item = Item()
group_item.update({
"subset": group_name,
"isGroup": True,
"childRow": 0
"isGroup": True
})
group_item.update(group_data)
@ -666,9 +667,6 @@ class SubsetsModel(TreeModel, BaseRepresentationModel):
index = self.index(item.row(), 0, parent_index)
self.set_version(index, last_version)
self.endResetModel()
self.refreshed.emit(True)
def data(self, index, role):
if not index.isValid():
return
@ -1139,7 +1137,6 @@ class RepresentationModel(TreeModel, BaseRepresentationModel):
"_id": doc["_id"],
"name": doc["name"],
"isMerged": True,
"childRow": 0,
"active_site_name": self.active_site,
"remote_site_name": self.remote_site,
"icon": qtawesome.icon(

View file

@ -303,7 +303,7 @@ class AssetModel(QtGui.QStandardItemModel):
self._doc_fetched.connect(self._on_docs_fetched)
self._items_with_color_by_id = {}
self._item_ids_with_color = set()
self._items_by_asset_id = {}
self._last_project_name = None
@ -382,9 +382,11 @@ class AssetModel(QtGui.QStandardItemModel):
self._stop_fetch_thread()
def clear_underlines(self):
for asset_id in tuple(self._items_with_color_by_id.keys()):
item = self._items_with_color_by_id.pop(asset_id)
item.setData(None, ASSET_UNDERLINE_COLORS_ROLE)
for asset_id in set(self._item_ids_with_color):
self._item_ids_with_color.remove(asset_id)
item = self._items_by_asset_id.get(asset_id)
if item is not None:
item.setData(None, ASSET_UNDERLINE_COLORS_ROLE)
def set_underline_colors(self, colors_by_asset_id):
self.clear_underlines()
@ -394,12 +396,13 @@ class AssetModel(QtGui.QStandardItemModel):
if item is None:
continue
item.setData(colors, ASSET_UNDERLINE_COLORS_ROLE)
self._item_ids_with_color.add(asset_id)
def _clear_items(self):
root_item = self.invisibleRootItem()
root_item.removeRows(0, root_item.rowCount())
self._items_by_asset_id = {}
self._items_with_color_by_id = {}
self._item_ids_with_color = set()
def _on_docs_fetched(self):
# Make sure refreshing did not change