From d8b1820d64b8f1b8cd78552369b1aa6c75094d84 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 14 Dec 2020 14:43:31 +0100 Subject: [PATCH 1/6] family widget get project name from dbcon.Session --- pype/tools/standalonepublish/widgets/widget_family.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pype/tools/standalonepublish/widgets/widget_family.py b/pype/tools/standalonepublish/widgets/widget_family.py index 5c0c8ccd38..bc913591c8 100644 --- a/pype/tools/standalonepublish/widgets/widget_family.py +++ b/pype/tools/standalonepublish/widgets/widget_family.py @@ -310,7 +310,10 @@ class FamilyWidget(QtWidgets.QWidget): def refresh(self): has_families = False - settings = get_project_settings(os.environ['AVALON_PROJECT']) + project_name = self.dbcon.Session.get("AVALON_PROJECT") + if not project_name: + return + settings = get_project_settings(project_name) sp_settings = settings.get('standalonepublisher', {}) print(sp_settings) From 1d8618e3b4d0216677f961392722be6a3082002d Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 14 Dec 2020 14:44:02 +0100 Subject: [PATCH 2/6] check if there is current item --- pype/tools/standalonepublish/widgets/widget_family.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pype/tools/standalonepublish/widgets/widget_family.py b/pype/tools/standalonepublish/widgets/widget_family.py index bc913591c8..c3a642ba60 100644 --- a/pype/tools/standalonepublish/widgets/widget_family.py +++ b/pype/tools/standalonepublish/widgets/widget_family.py @@ -285,7 +285,10 @@ class FamilyWidget(QtWidgets.QWidget): self.schedule(self._on_data_changed, 500, channel="gui") def on_selection_changed(self, *args): - plugin = self.list_families.currentItem().data(PluginRole) + item = self.list_families.currentItem() + if not item: + return + plugin = item.data(PluginRole) if plugin is None: return From da4db49d6d2f4e0b6e63f2398a7256523eb3b1b1 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 14 Dec 2020 14:44:20 +0100 Subject: [PATCH 3/6] clear families on refresh --- pype/tools/standalonepublish/widgets/widget_family.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pype/tools/standalonepublish/widgets/widget_family.py b/pype/tools/standalonepublish/widgets/widget_family.py index c3a642ba60..dda4e5b03e 100644 --- a/pype/tools/standalonepublish/widgets/widget_family.py +++ b/pype/tools/standalonepublish/widgets/widget_family.py @@ -318,7 +318,8 @@ class FamilyWidget(QtWidgets.QWidget): return settings = get_project_settings(project_name) sp_settings = settings.get('standalonepublisher', {}) - print(sp_settings) + + self.list_families.clear() for key, creator in sp_settings.get("create", {}).items(): if key == "__dynamic_keys_labels__": From b3095e61f984fb88bb577e715c353e7339036aa6 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 14 Dec 2020 14:44:34 +0100 Subject: [PATCH 4/6] trigger project change in asset widget --- pype/tools/standalonepublish/widgets/widget_asset.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pype/tools/standalonepublish/widgets/widget_asset.py b/pype/tools/standalonepublish/widgets/widget_asset.py index 6f041a535f..91565668cc 100644 --- a/pype/tools/standalonepublish/widgets/widget_asset.py +++ b/pype/tools/standalonepublish/widgets/widget_asset.py @@ -121,6 +121,7 @@ class AssetWidget(QtWidgets.QWidget): """ + project_changed = QtCore.Signal(str) assets_refreshed = QtCore.Signal() # on model refresh selection_changed = QtCore.Signal() # on view selection change current_changed = QtCore.Signal() # on view current index change @@ -249,6 +250,9 @@ class AssetWidget(QtWidgets.QWidget): project_name = self.combo_projects.currentText() if project_name in projects: self.dbcon.Session["AVALON_PROJECT"] = project_name + + self.project_changed.emit(project_name) + self.refresh() def _refresh_model(self): From 9c539aa07d56b19f25f4c38e9841fae011900587 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 14 Dec 2020 14:44:51 +0100 Subject: [PATCH 5/6] refresh family widget on project change --- pype/tools/standalonepublish/app.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pype/tools/standalonepublish/app.py b/pype/tools/standalonepublish/app.py index feba46987f..a22dae32b9 100644 --- a/pype/tools/standalonepublish/app.py +++ b/pype/tools/standalonepublish/app.py @@ -62,6 +62,7 @@ class Window(QtWidgets.QDialog): # signals widget_assets.selection_changed.connect(self.on_asset_changed) + widget_assets.project_changed.connect(self.on_project_change) widget_family.stateChanged.connect(self.set_valid_family) self.widget_assets = widget_assets @@ -116,6 +117,9 @@ class Window(QtWidgets.QDialog): parents.append(parent['name']) return parents + def on_project_change(self, project_name): + self.widget_family.refresh() + def on_asset_changed(self): '''Callback on asset selection changed From 1b7aa14cf1b526050fea3a3ca1cc63d149b3ca85 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 14 Dec 2020 14:50:59 +0100 Subject: [PATCH 6/6] clear is as first on refresh --- pype/tools/standalonepublish/widgets/widget_family.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pype/tools/standalonepublish/widgets/widget_family.py b/pype/tools/standalonepublish/widgets/widget_family.py index dda4e5b03e..ed30dba420 100644 --- a/pype/tools/standalonepublish/widgets/widget_family.py +++ b/pype/tools/standalonepublish/widgets/widget_family.py @@ -312,15 +312,16 @@ class FamilyWidget(QtWidgets.QWidget): """ def refresh(self): + self.list_families.clear() + has_families = False project_name = self.dbcon.Session.get("AVALON_PROJECT") if not project_name: return + settings = get_project_settings(project_name) sp_settings = settings.get('standalonepublisher', {}) - self.list_families.clear() - for key, creator in sp_settings.get("create", {}).items(): if key == "__dynamic_keys_labels__": continue