mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
Fix Nuke workfile template builder so representations get loaded next to each other for a single placeholder
This commit is contained in:
parent
a068bd9b05
commit
00b6880506
3 changed files with 25 additions and 14 deletions
|
|
@ -250,7 +250,7 @@ class MayaPlaceholderLoadPlugin(PlaceholderPlugin, PlaceholderLoadMixin):
|
|||
def get_placeholder_options(self, options=None):
|
||||
return self.get_load_plugin_options(options)
|
||||
|
||||
def cleanup_placeholder(self, placeholder, failed):
|
||||
def cleanup_placeholder(self, placeholder):
|
||||
"""Hide placeholder, add them to placeholder set
|
||||
"""
|
||||
node = placeholder._scene_identifier
|
||||
|
|
|
|||
|
|
@ -156,8 +156,10 @@ class NukePlaceholderLoadPlugin(NukePlaceholderPlugin, PlaceholderLoadMixin):
|
|||
)
|
||||
return loaded_representation_ids
|
||||
|
||||
def _before_repre_load(self, placeholder, representation):
|
||||
def _before_placeholder_load(self, placeholder):
|
||||
placeholder.data["nodes_init"] = nuke.allNodes()
|
||||
|
||||
def _before_repre_load(self, placeholder, representation):
|
||||
placeholder.data["last_repre_id"] = str(representation["_id"])
|
||||
|
||||
def collect_placeholders(self):
|
||||
|
|
@ -189,7 +191,7 @@ class NukePlaceholderLoadPlugin(NukePlaceholderPlugin, PlaceholderLoadMixin):
|
|||
def get_placeholder_options(self, options=None):
|
||||
return self.get_load_plugin_options(options)
|
||||
|
||||
def cleanup_placeholder(self, placeholder, failed):
|
||||
def cleanup_placeholder(self, placeholder):
|
||||
# deselect all selected nodes
|
||||
placeholder_node = nuke.toNode(placeholder.scene_identifier)
|
||||
|
||||
|
|
@ -603,7 +605,7 @@ class NukePlaceholderCreatePlugin(
|
|||
def get_placeholder_options(self, options=None):
|
||||
return self.get_create_plugin_options(options)
|
||||
|
||||
def cleanup_placeholder(self, placeholder, failed):
|
||||
def cleanup_placeholder(self, placeholder):
|
||||
# deselect all selected nodes
|
||||
placeholder_node = nuke.toNode(placeholder.scene_identifier)
|
||||
|
||||
|
|
|
|||
|
|
@ -1457,8 +1457,15 @@ class PlaceholderLoadMixin(object):
|
|||
context_filters=context_filters
|
||||
))
|
||||
|
||||
def _before_placeholder_load(self, placeholder):
|
||||
"""Can be overridden. It's called before placeholder representations
|
||||
are loaded.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
def _before_repre_load(self, placeholder, representation):
|
||||
"""Can be overriden. Is called before representation is loaded."""
|
||||
"""Can be overridden. It's called before representation is loaded."""
|
||||
|
||||
pass
|
||||
|
||||
|
|
@ -1491,7 +1498,7 @@ class PlaceholderLoadMixin(object):
|
|||
return output
|
||||
|
||||
def populate_load_placeholder(self, placeholder, ignore_repre_ids=None):
|
||||
"""Load placeholder is goind to load matching representations.
|
||||
"""Load placeholder is going to load matching representations.
|
||||
|
||||
Note:
|
||||
Ignore repre ids is to avoid loading the same representation again
|
||||
|
|
@ -1513,7 +1520,7 @@ class PlaceholderLoadMixin(object):
|
|||
|
||||
# TODO check loader existence
|
||||
loader_name = placeholder.data["loader"]
|
||||
loader_args = placeholder.data["loader_args"]
|
||||
loader_args = self.parse_loader_args(placeholder.data["loader_args"])
|
||||
|
||||
placeholder_representations = self._get_representations(placeholder)
|
||||
|
||||
|
|
@ -1535,6 +1542,9 @@ class PlaceholderLoadMixin(object):
|
|||
self.project_name, filtered_representations
|
||||
)
|
||||
loaders_by_name = self.builder.get_loaders_by_name()
|
||||
self._before_placeholder_load(
|
||||
placeholder
|
||||
)
|
||||
for repre_load_context in repre_load_contexts.values():
|
||||
representation = repre_load_context["representation"]
|
||||
repre_context = representation["context"]
|
||||
|
|
@ -1547,24 +1557,24 @@ class PlaceholderLoadMixin(object):
|
|||
repre_context["subset"],
|
||||
repre_context["asset"],
|
||||
loader_name,
|
||||
loader_args
|
||||
placeholder.data["loader_args"],
|
||||
)
|
||||
)
|
||||
try:
|
||||
container = load_with_repre_context(
|
||||
loaders_by_name[loader_name],
|
||||
repre_load_context,
|
||||
options=self.parse_loader_args(loader_args)
|
||||
options=loader_args
|
||||
)
|
||||
|
||||
except Exception:
|
||||
failed = True
|
||||
self.load_failed(placeholder, representation)
|
||||
|
||||
else:
|
||||
failed = False
|
||||
self.load_succeed(placeholder, container)
|
||||
self.cleanup_placeholder(placeholder, failed)
|
||||
|
||||
# Cleanup placeholder after load of all representations
|
||||
self.cleanup_placeholder(placeholder)
|
||||
|
||||
def load_failed(self, placeholder, representation):
|
||||
if hasattr(placeholder, "load_failed"):
|
||||
|
|
@ -1574,7 +1584,7 @@ class PlaceholderLoadMixin(object):
|
|||
if hasattr(placeholder, "load_succeed"):
|
||||
placeholder.load_succeed(container)
|
||||
|
||||
def cleanup_placeholder(self, placeholder, failed):
|
||||
def cleanup_placeholder(self, placeholder):
|
||||
"""Cleanup placeholder after load of single representation.
|
||||
|
||||
Can be called multiple times during placeholder item populating and is
|
||||
|
|
@ -1583,7 +1593,6 @@ class PlaceholderLoadMixin(object):
|
|||
Args:
|
||||
placeholder (PlaceholderItem): Item which was just used to load
|
||||
representation.
|
||||
failed (bool): Loading of representation failed.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue