From 28af01c9e775b0e8bc320c52aac5e2e928523e1c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Nov 2020 16:29:04 +0100 Subject: [PATCH 1/3] set_project will try to refresh model by it's own if project was not found --- pype/tools/launcher/widgets.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pype/tools/launcher/widgets.py b/pype/tools/launcher/widgets.py index 894dde3926..9344360c3e 100644 --- a/pype/tools/launcher/widgets.py +++ b/pype/tools/launcher/widgets.py @@ -49,6 +49,14 @@ class ProjectBar(QtWidgets.QWidget): def set_project(self, project_name): index = self.project_combobox.findText(project_name) + if index < 0: + # Try refresh combobox model + self.project_combobox.blockSignals(True) + self.model.refresh() + self.project_combobox.blockSignals(False) + + index = self.project_combobox.findText(project_name) + if index >= 0: self.project_combobox.setCurrentIndex(index) From b92501cc0a5adb899fdb2cf5491b0a9334f5d302 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Nov 2020 16:29:19 +0100 Subject: [PATCH 2/3] do not refresh project bar of project change --- pype/tools/launcher/window.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pype/tools/launcher/window.py b/pype/tools/launcher/window.py index 7c680a927b..9940c77285 100644 --- a/pype/tools/launcher/window.py +++ b/pype/tools/launcher/window.py @@ -375,7 +375,6 @@ class LauncherWindow(QtWidgets.QDialog): def on_project_clicked(self, project_name): self.dbcon.Session["AVALON_PROJECT"] = project_name # Refresh projects - self.asset_panel.project_bar.refresh() self.asset_panel.set_project(project_name) self.set_page(1) self.refresh_actions() From 25e65a20a42b4d06fd2fe5037eb08545ad389a87 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Nov 2020 16:29:48 +0100 Subject: [PATCH 3/3] trigger on_asset_changed when assets are done with refreshing --- pype/tools/launcher/window.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pype/tools/launcher/window.py b/pype/tools/launcher/window.py index 9940c77285..55635e2139 100644 --- a/pype/tools/launcher/window.py +++ b/pype/tools/launcher/window.py @@ -207,7 +207,7 @@ class AssetsPanel(QtWidgets.QWidget): self.assets_widget.refresh() # Force asset change callback to ensure tasks are correctly reset - tools_lib.schedule(self.on_asset_changed, 0.05, channel="assets") + self.assets_widget.refreshed.connect(self.on_asset_changed) def on_asset_changed(self): """Callback on asset selection changed