mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
got rid of 'clear' argument in refresh method of assets widget
This commit is contained in:
parent
3ca931097d
commit
03fa4e7443
1 changed files with 21 additions and 15 deletions
|
|
@ -306,6 +306,8 @@ class AssetModel(QtGui.QStandardItemModel):
|
||||||
self._items_with_color_by_id = {}
|
self._items_with_color_by_id = {}
|
||||||
self._items_by_asset_id = {}
|
self._items_by_asset_id = {}
|
||||||
|
|
||||||
|
self._last_project_name = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def refreshing(self):
|
def refreshing(self):
|
||||||
return self._refreshing
|
return self._refreshing
|
||||||
|
|
@ -347,7 +349,7 @@ class AssetModel(QtGui.QStandardItemModel):
|
||||||
|
|
||||||
return self.get_indexes_by_asset_ids(asset_ids)
|
return self.get_indexes_by_asset_ids(asset_ids)
|
||||||
|
|
||||||
def refresh(self, force=False, clear=False):
|
def refresh(self, force=False):
|
||||||
"""Refresh the data for the model.
|
"""Refresh the data for the model.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
|
@ -360,7 +362,13 @@ class AssetModel(QtGui.QStandardItemModel):
|
||||||
return
|
return
|
||||||
self.stop_refresh()
|
self.stop_refresh()
|
||||||
|
|
||||||
if clear:
|
project_name = self.dbcon.Session.get("AVALON_PROJECT")
|
||||||
|
clear_model = False
|
||||||
|
if project_name != self._last_project_name:
|
||||||
|
clear_model = True
|
||||||
|
self._last_project_name = project_name
|
||||||
|
|
||||||
|
if clear_model:
|
||||||
self._clear_items()
|
self._clear_items()
|
||||||
|
|
||||||
# Fetch documents from mongo
|
# Fetch documents from mongo
|
||||||
|
|
@ -401,11 +409,18 @@ class AssetModel(QtGui.QStandardItemModel):
|
||||||
self._clear_items()
|
self._clear_items()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
self._fill_assets(self._doc_payload)
|
||||||
|
|
||||||
|
self.refreshed.emit(bool(self._items_by_asset_id))
|
||||||
|
|
||||||
|
self._stop_fetch_thread()
|
||||||
|
|
||||||
|
def _fill_assets(self, asset_docs):
|
||||||
# Collect asset documents as needed
|
# Collect asset documents as needed
|
||||||
asset_ids = set()
|
asset_ids = set()
|
||||||
asset_docs_by_id = {}
|
asset_docs_by_id = {}
|
||||||
asset_ids_by_parents = collections.defaultdict(set)
|
asset_ids_by_parents = collections.defaultdict(set)
|
||||||
for asset_doc in self._doc_payload:
|
for asset_doc in asset_docs:
|
||||||
asset_id = asset_doc["_id"]
|
asset_id = asset_doc["_id"]
|
||||||
asset_data = asset_doc.get("data") or {}
|
asset_data = asset_doc.get("data") or {}
|
||||||
parent_id = asset_data.get("visualParent")
|
parent_id = asset_data.get("visualParent")
|
||||||
|
|
@ -511,10 +526,6 @@ class AssetModel(QtGui.QStandardItemModel):
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.refreshed.emit(bool(self._items_by_asset_id))
|
|
||||||
|
|
||||||
self._stop_fetch_thread()
|
|
||||||
|
|
||||||
def _threaded_fetch(self):
|
def _threaded_fetch(self):
|
||||||
asset_docs = self._fetch_asset_docs()
|
asset_docs = self._fetch_asset_docs()
|
||||||
if not self._refreshing:
|
if not self._refreshing:
|
||||||
|
|
@ -652,12 +663,7 @@ class AssetsWidget(QtWidgets.QWidget):
|
||||||
return self._model.refreshing
|
return self._model.refreshing
|
||||||
|
|
||||||
def refresh(self):
|
def refresh(self):
|
||||||
project_name = self.dbcon.Session.get("AVALON_PROJECT")
|
self._refresh_model()
|
||||||
clear_model = False
|
|
||||||
if project_name != self._last_project_name:
|
|
||||||
clear_model = True
|
|
||||||
self._last_project_name = project_name
|
|
||||||
self._refresh_model(clear_model)
|
|
||||||
|
|
||||||
def stop_refresh(self):
|
def stop_refresh(self):
|
||||||
self._model.stop_refresh()
|
self._model.stop_refresh()
|
||||||
|
|
@ -709,14 +715,14 @@ class AssetsWidget(QtWidgets.QWidget):
|
||||||
self._set_loading_state(loading=False, empty=not has_item)
|
self._set_loading_state(loading=False, empty=not has_item)
|
||||||
self.refreshed.emit()
|
self.refreshed.emit()
|
||||||
|
|
||||||
def _refresh_model(self, clear=False):
|
def _refresh_model(self):
|
||||||
# Store selection
|
# Store selection
|
||||||
self._set_loading_state(loading=True, empty=True)
|
self._set_loading_state(loading=True, empty=True)
|
||||||
|
|
||||||
# Trigger signal before refresh is called
|
# Trigger signal before refresh is called
|
||||||
self.refresh_triggered.emit()
|
self.refresh_triggered.emit()
|
||||||
# Refresh model
|
# Refresh model
|
||||||
self._model.refresh(clear=clear)
|
self._model.refresh()
|
||||||
|
|
||||||
def _set_loading_state(self, loading, empty):
|
def _set_loading_state(self, loading, empty):
|
||||||
self._view.set_loading_state(loading, empty)
|
self._view.set_loading_state(loading, empty)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue