From e36f289f44ba48c1a7d508ade9b78b7b161cfcde Mon Sep 17 00:00:00 2001 From: Toke Jepsen Date: Fri, 26 Jul 2019 08:11:48 +0100 Subject: [PATCH 1/4] Set context settings on startup. --- pype/nuke/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pype/nuke/__init__.py b/pype/nuke/__init__.py index b64f728771..982724e899 100644 --- a/pype/nuke/__init__.py +++ b/pype/nuke/__init__.py @@ -23,6 +23,7 @@ from pypeapp import Logger # for handler in Logger.logging.root.handlers[:]]: # if "pype" not in str(name).lower(): # Logger.logging.root.removeHandler(handler) +from . import lib self = sys.modules[__name__] @@ -138,6 +139,9 @@ def install(): if launch_workfiles: nuke.addOnCreate(launch_workfiles_app, nodeClass="Root") + # Set context settings. + nuke.addOnCreate(lib.set_context_settings, nodeClass="Root") + def launch_workfiles_app(): if not self.workfiles_launched: From 6999c2a00ac8ca728ea0776b1720da96d68fce66 Mon Sep 17 00:00:00 2001 From: Toke Jepsen Date: Fri, 26 Jul 2019 08:12:17 +0100 Subject: [PATCH 2/4] Remove redundant code and code cosmetics. --- pype/nuke/__init__.py | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/pype/nuke/__init__.py b/pype/nuke/__init__.py index 982724e899..94f591b2e8 100644 --- a/pype/nuke/__init__.py +++ b/pype/nuke/__init__.py @@ -1,28 +1,14 @@ import os import sys +import logging + +import nuke from avalon import api as avalon from avalon.tools import workfiles from pyblish import api as pyblish - -from .. import api - from pype.nuke import menu -import logging - -from .lib import ( - create_write_node -) - -import nuke - from pypeapp import Logger - -# #removing logger handler created in avalon_core -# for name, handler in [(handler.get_name(), handler) -# for handler in Logger.logging.root.handlers[:]]: -# if "pype" not in str(name).lower(): -# Logger.logging.root.removeHandler(handler) from . import lib From 414d6a888d55a28778f2c398603195884f88d627 Mon Sep 17 00:00:00 2001 From: Toke Jepsen Date: Fri, 26 Jul 2019 08:15:18 +0100 Subject: [PATCH 3/4] Remove active viewer warning. - Because we set the context on the creation of the Root, the log error pop up appear unnecessarily. - Working with viewer is Nuke workflow behaviour which should not be explained by the pipeline. - Supporting finding the first viewer node in the scene. --- pype/nuke/lib.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index 6a57704fff..eae812ec26 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -392,8 +392,11 @@ def reset_frame_range_handles(): try: vv = nuke.activeViewer().node() except AttributeError: - log.error("No active viewer. Select any node and hit num `1`") - return + viewer_nodes = nuke.allNodes(filter="Viewer") + if viewer_nodes: + vv = viewer_nodes[0] + else: + return range = '{0}-{1}'.format( int(asset["data"]["fstart"]), From 7facb8faea192652ddd1c84b91eef8eecd4c4d7b Mon Sep 17 00:00:00 2001 From: Toke Jepsen Date: Sat, 27 Jul 2019 09:32:08 +0100 Subject: [PATCH 4/4] Iterate over all viewer nodes to set frame range. --- pype/nuke/lib.py | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index eae812ec26..dd543c63e6 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -389,27 +389,19 @@ def reset_frame_range_handles(): # setting active viewers nuke.frame(int(asset["data"]["fstart"])) - try: - vv = nuke.activeViewer().node() - except AttributeError: - viewer_nodes = nuke.allNodes(filter="Viewer") - if viewer_nodes: - vv = viewer_nodes[0] - else: - return - range = '{0}-{1}'.format( int(asset["data"]["fstart"]), int(asset["data"]["fend"])) - vv['frame_range'].setValue(range) - vv['frame_range_lock'].setValue(True) + for node in nuke.allNodes(filter="Viewer"): + node['frame_range'].setValue(range) + node['frame_range_lock'].setValue(True) - log.info("_frameRange: {}".format(range)) - log.info("frameRange: {}".format(vv['frame_range'].value())) + log.info("_frameRange: {}".format(range)) + log.info("frameRange: {}".format(node['frame_range'].value())) - vv['frame_range'].setValue(range) - vv['frame_range_lock'].setValue(True) + node['frame_range'].setValue(range) + node['frame_range_lock'].setValue(True) # adding handle_start/end to root avalon knob if not avalon.nuke.set_avalon_knob_data(root, {