Merge pull request #814 from pypeclub/bugfix/standalone_publisher_fix

Standalone publisher fix in 3.0
This commit is contained in:
Milan Kolar 2020-12-14 15:34:33 +01:00 committed by GitHub
commit d95749e099
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 3 deletions

View file

@ -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

View file

@ -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):

View file

@ -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
@ -309,10 +312,15 @@ class FamilyWidget(QtWidgets.QWidget):
"""
def refresh(self):
self.list_families.clear()
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)
for key, creator in sp_settings.get("create", {}).items():
if key == "__dynamic_keys_labels__":