From a859339387defce9ee803adbbdeb707c901ad3bc Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 1 Jul 2021 20:06:33 +0200 Subject: [PATCH] added base of asset refresh and cache it's document --- openpype/tools/new_publisher/widgets.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/openpype/tools/new_publisher/widgets.py b/openpype/tools/new_publisher/widgets.py index 37e8ac1ef5..dc41d97c37 100644 --- a/openpype/tools/new_publisher/widgets.py +++ b/openpype/tools/new_publisher/widgets.py @@ -107,6 +107,7 @@ class CreateDialog(QtWidgets.QDialog): self.controller = controller self._last_pos = None + self._asset_doc = None family_view = QtWidgets.QListView(self) family_model = QtGui.QStandardItemModel() family_view.setModel(family_model) @@ -179,6 +180,30 @@ class CreateDialog(QtWidgets.QDialog): def dbcon(self): return self.controller.dbcon + def refresh(self): + self._refresh_asset() + + def _refresh_asset(self): + asset_name = self.dbcon.Session.get("AVALON_ASSET") + + # Skip if asset did not change + if self._asset_doc and self._asset_doc["name"] == asset_name: + return + + # Make sure `_asset_doc` and `_subset_names` variables are reset + self._asset_doc = None + if asset_name is None: + return + + asset_doc = self.dbcon.find_one({ + "type": "asset", + "name": asset_name + }) + self._asset_doc = asset_doc + + if asset_doc: + self.asset_name_input.setText(asset_doc["name"]) + def moveEvent(self, event): super(CreateDialog, self).moveEvent(event) self._last_pos = self.pos()