Skip to content

Commit

Permalink
Fix Create Placeholder issue
Browse files Browse the repository at this point in the history
  • Loading branch information
CAILLOT Cyprien authored and ccaillot committed Nov 2, 2023
1 parent feca401 commit 9ee3db2
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
9 changes: 6 additions & 3 deletions openpype/pipeline/action/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,22 @@ def get_actions_by_name():
actions_by_name[action_name] = action
return actions_by_name


def get_actions_by_family(family):
"""Return all actions by family"""
from .action_plugin import discover_builder_plugins

actions_by_family = {}
for action in discover_builder_plugins():
if action.__name__ in actions_by_family:
action_name = action.__name__
if action_name in actions_by_family:
raise KeyError(
"Duplicated loader family {} !".format(action.__name__)
"Duplicated loader family {} !".format(action_name)
)

action_families_list = action.families
if family in action_families_list:
actions_by_family[action.__name__] = action
actions_by_family[action_name] = action
return actions_by_family


Expand Down
1 change: 0 additions & 1 deletion openpype/tools/attribute_defs/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,6 @@ def current_value(self):
attr_def = widget.attr_def
if not isinstance(attr_def, UIDef):
output[attr_def.key] = widget.current_value()

return output


Expand Down
14 changes: 9 additions & 5 deletions openpype/tools/workfile_template_build/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,19 +267,23 @@ def filter_actions_by_families_widget(self):
if not family_widget or not builder_widget:
return


self.update_builder_action(family_widget, builder_widget)
family_widget._input_widget.currentIndexChanged.connect(
lambda index, family=family_widget, builder=builder_widget: self.update_builder_action(family, builder)
)

def update_builder_action(self, family_widget, builder_widget):
"""Update builder action widget by family widget value"""
actions_dict = get_actions_by_family(family_widget.current_value())
builder_widget._input_widget.clear()
actions_by_family = get_actions_by_family(family_widget.current_value())

if not actions_dict:
if not actions_by_family:
return

for action_name, action in actions_dict.items():
builder_widget._input_widget.addItem(action_name)
action_items = [
{"value": action_name, "label": action.label or action_name}
for action_name, action in actions_by_family.items()
]

for item in action_items:
builder_widget._input_widget.addItem(item["label"], item["value"])

0 comments on commit 9ee3db2

Please sign in to comment.