Merge pull request #6170 from ynput/enhancement/OP-7275_AYON-refresh-loader-on-show

Loader AYON: Reset loader window on open
This commit is contained in:
Jakub Trllo 2024-02-05 13:15:24 +01:00 committed by GitHub
commit 5f0944ee5c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 16 additions and 3 deletions

View file

@ -531,6 +531,9 @@ class FrontendLoaderController(_BaseLoaderController):
Product types have defined if are checked for filtering or not.
Args:
project_name (Union[str, None]): Project name.
Returns:
list[ProductTypeItem]: List of product type items for a project.
"""

View file

@ -179,12 +179,15 @@ class ProductsModel:
"""Product type items for project.
Args:
project_name (str): Project name.
project_name (Union[str, None]): Project name.
Returns:
list[ProductTypeItem]: Product type items.
"""
if not project_name:
return []
cache = self._product_type_items_cache[project_name]
if not cache.is_valid:
product_types = ayon_api.get_project_product_types(project_name)

View file

@ -322,6 +322,7 @@ class LoaderWindow(QtWidgets.QWidget):
)
def refresh(self):
self._reset_on_show = False
self._controller.reset()
def showEvent(self, event):
@ -332,6 +333,13 @@ class LoaderWindow(QtWidgets.QWidget):
self._show_timer.start()
def closeEvent(self, event):
super(LoaderWindow, self).closeEvent(event)
# Deselect project so current context will be selected
# on next 'showEvent'
self._controller.set_selected_project(None)
self._reset_on_show = True
def keyPressEvent(self, event):
modifiers = event.modifiers()
ctrl_pressed = QtCore.Qt.ControlModifier & modifiers
@ -378,8 +386,7 @@ class LoaderWindow(QtWidgets.QWidget):
self._show_timer.stop()
if self._reset_on_show:
self._reset_on_show = False
self._controller.reset()
self.refresh()
def _show_group_dialog(self):
project_name = self._projects_combobox.get_selected_project_name()