Add preferences with default templates with option to set them from env (falling back to prefs) at startup
change default templates to use label instead of name
This commit is contained in:
+18
-5
@@ -10,7 +10,7 @@ class RT_PG_render_toolbox_props(PropertyGroup):
|
||||
name="Base Path Template",
|
||||
description="Template for file output base path\
|
||||
\nFolder containing subsequent filepath",
|
||||
default="//render/{node_name}/",
|
||||
default="//render/{node_label}/",
|
||||
# options={'SKIP_SAVE'}
|
||||
)
|
||||
|
||||
@@ -19,7 +19,7 @@ class RT_PG_render_toolbox_props(PropertyGroup):
|
||||
name="Base Path Template",
|
||||
description="Template for multilayer file output base paths\
|
||||
\nOutput of the file sequence",
|
||||
default="//render/{node_name}/{node_name}_",
|
||||
default="//render/{node_label}/{node_label}_",
|
||||
# options={'SKIP_SAVE'}
|
||||
)
|
||||
|
||||
@@ -58,15 +58,28 @@ class RT_PG_render_toolbox_props(PropertyGroup):
|
||||
# # options={'SKIP_SAVE'}
|
||||
# )
|
||||
|
||||
def set_env_properties():
|
||||
## set default template from environment variable if available
|
||||
def reset_scene_path_templates():
|
||||
## set default template from environment variable if available, or fallback to preferences defaults
|
||||
prefs = bpy.context.preferences.addons[__package__].preferences
|
||||
if not prefs.use_env_base_path_templates:
|
||||
# set from preferences
|
||||
bpy.context.scene.render_toolbox.default_base_path = prefs.base_path_template
|
||||
bpy.context.scene.render_toolbox.default_multilayer_base_path = prefs.base_path_multilayer_template
|
||||
return
|
||||
|
||||
# set from environment variables (fallback to preferences if not set)
|
||||
exr_base_path_template = os.getenv('RENDERTOOLBOX_EXR_PATH_TEMPLATE')
|
||||
if exr_base_path_template:
|
||||
bpy.context.scene.render_toolbox.default_base_path = exr_base_path_template
|
||||
else:
|
||||
bpy.context.scene.render_toolbox.default_base_path = prefs.base_path_template
|
||||
|
||||
multilayer_base_path_template = os.getenv('RENDERTOOLBOX_MULTILAYER_PATH_TEMPLATE')
|
||||
if multilayer_base_path_template:
|
||||
bpy.context.scene.render_toolbox.default_multilayer_base_path = multilayer_base_path_template
|
||||
else:
|
||||
bpy.context.scene.render_toolbox.default_multilayer_base_path = prefs.base_path_multilayer_template
|
||||
|
||||
|
||||
classes = (
|
||||
RT_PG_render_toolbox_props,
|
||||
@@ -77,7 +90,7 @@ def register():
|
||||
bpy.utils.register_class(cls)
|
||||
|
||||
bpy.types.Scene.render_toolbox = bpy.props.PointerProperty(type=RT_PG_render_toolbox_props)
|
||||
# set_env_properties() # restricted context error when trying assignation here (probably need handler)
|
||||
# reset_scene_path_templates() # restricted context error when trying assignation here (probably need handler)
|
||||
|
||||
def unregister():
|
||||
del bpy.types.Scene.render_toolbox
|
||||
|
||||
Reference in New Issue
Block a user