From f4117a7a5cd84df6ce53e4afd2a91fbb601fc705 Mon Sep 17 00:00:00 2001 From: Toke Stuart Jepsen Date: Wed, 26 Apr 2023 10:35:40 +0100 Subject: [PATCH] Clean up of placeholder. --- .../hosts/maya/api/workfile_template_builder.py | 4 ++++ .../pipeline/workfile/workfile_template_builder.py | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/openpype/hosts/maya/api/workfile_template_builder.py b/openpype/hosts/maya/api/workfile_template_builder.py index 9dc91ed772..eb90dfdc37 100644 --- a/openpype/hosts/maya/api/workfile_template_builder.py +++ b/openpype/hosts/maya/api/workfile_template_builder.py @@ -242,6 +242,10 @@ class MayaPlaceholderLoadPlugin(PlaceholderPlugin, PlaceholderLoadMixin): cmds.hide(node) cmds.setAttr(node + ".hiddenInOutliner", True) + def delete_placeholder(self, placeholder): + """Remove placeholder if building was successful""" + cmds.delete(placeholder._scene_identifier) + def load_succeed(self, placeholder, container): self._parent_in_hierarchy(placeholder, container) diff --git a/openpype/pipeline/workfile/workfile_template_builder.py b/openpype/pipeline/workfile/workfile_template_builder.py index a3d7340367..3d28d862a3 100644 --- a/openpype/pipeline/workfile/workfile_template_builder.py +++ b/openpype/pipeline/workfile/workfile_template_builder.py @@ -1555,6 +1555,15 @@ class PlaceholderLoadMixin(object): self.load_succeed(placeholder, container) self.cleanup_placeholder(placeholder, failed) + if failed: + self.log.debug( + "Placeholder cleanup skipped due to failed placeholder " + "population." + ) + return + if not placeholder.data["keep_placeholder"]: + self.delete_placeholder(placeholder) + def load_failed(self, placeholder, representation): if hasattr(placeholder, "load_failed"): placeholder.load_failed(representation) @@ -1577,6 +1586,10 @@ class PlaceholderLoadMixin(object): pass + def delete_placeholder(self, placeholder, failed): + """Called when all item population is done.""" + self.log.debug("Clean up of placeholder is not implemented.") + class PlaceholderCreateMixin(object): """Mixin prepared for creating placeholder plugins.