From c55181548c7a0903bfd96796ccc16e7d862d2ccc Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Wed, 2 Jan 2019 15:46:53 +0100 Subject: [PATCH] Backup --- pype/plugins/nuke/create/create_read.py | 38 +++++++++++++--------- pype/plugins/nuke/publish/collect_reads.py | 11 ++++--- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/pype/plugins/nuke/create/create_read.py b/pype/plugins/nuke/create/create_read.py index 495cdde0ad..238abbf599 100644 --- a/pype/plugins/nuke/create/create_read.py +++ b/pype/plugins/nuke/create/create_read.py @@ -14,8 +14,8 @@ class CrateRead(avalon.nuke.Creator): name = "ReadCopy" label = "Create Read Copy" hosts = ["nuke"] - # family = "read" family = "source" + families = family icon = "sign-out" def __init__(self, *args, **kwargs): @@ -23,7 +23,7 @@ class CrateRead(avalon.nuke.Creator): data = OrderedDict() data['family'] = self.family - + data['families'] = self.family {data.update({k: v}) for k, v in self.data.items() if k not in data.keys()} self.data = data @@ -35,24 +35,32 @@ class CrateRead(avalon.nuke.Creator): if not nodes or len(nodes) == 0: nuke.message('Please select Read node') - elif len(nodes) == 1: - if nodes[0].Class() != 'Read': - nuke.message('Please select Read node') - else: - node = nodes[0] - name = node["name"].value() - avalon_data = self.data - avalon_data['subset'] = "{}_{}".format(self.family, name) - change_read_node(self.data["subset"], node, avalon_data) else: + count_reads = 0 for node in nodes: + if node.Class() != 'Read': + continue name = node["name"].value() avalon_data = self.data avalon_data['subset'] = "{}_{}".format(self.family, name) - change_read_node(self.data["subset"], node, avalon_data) + self.change_read_node(self.data["subset"], node, avalon_data) + count_reads += 1 + + if count_reads < 1: + nuke.message('Please select Read node') return + def change_read_node(self, name, node, data): + node = avalon.nuke.lib.imprint(node, data) + node = self.add_transfer_knob(node) + node['tile_color'].setValue(16711935) -def change_read_node(name, node, data): - node = avalon.nuke.lib.imprint(node, data) - node['tile_color'].setValue(16711935) + def add_transfer_knob(self, node): + knob_name = "transferSource" + knob_label = "Transfer" + if knob_name not in node.knobs(): + knob = nuke.Boolean_Knob(knob_name, knob_label) + knob.setValue(True) + knob.setFlag(nuke.STARTLINE) + node.addKnob(knob) + return node diff --git a/pype/plugins/nuke/publish/collect_reads.py b/pype/plugins/nuke/publish/collect_reads.py index e51967af91..2d9ef2656b 100644 --- a/pype/plugins/nuke/publish/collect_reads.py +++ b/pype/plugins/nuke/publish/collect_reads.py @@ -48,8 +48,6 @@ class CollectNukeReads(pyblish.api.ContextPlugin): isSequence = True # # Get frame range - # first_frame = int(nuke.root()["first_frame"].getValue()) - # last_frame = int(nuke.root()["last_frame"].getValue()) first_frame = node['first'].value() last_frame = node['last'].value() @@ -72,12 +70,17 @@ class CollectNukeReads(pyblish.api.ContextPlugin): int(first_frame), int(last_frame) ) - nuke.message(str(source_files)) + self.log.debug("collected_frames: {}".format(label)) if "files" not in instance.data: instance.data["files"] = list() instance.data["files"] = source_files - instance.data['transfer'] = False + + transfer = False + if "transferSource" in node.knobs(): + transfer = node["transferSource"] + + instance.data['transfer'] = transfer self.log.debug("checking for error: {}".format(label)) instance.data.update({