Files
blender-portable-repo/scripts/addons/blender_kitsu/render_review/props.py
T
2026-03-17 14:58:51 -06:00

87 lines
2.2 KiB
Python

# SPDX-FileCopyrightText: 2021 Blender Studio Tools Authors
#
# SPDX-License-Identifier: GPL-3.0-or-later
from typing import Set, Union, Optional, List, Dict, Any
from pathlib import Path
import bpy
from ..logger import LoggerFactory
logger = LoggerFactory.getLogger()
class RR_isolate_collection_prop(bpy.types.PropertyGroup):
mute: bpy.props.BoolProperty()
class RR_property_group_scene(bpy.types.PropertyGroup):
""""""
render_dir: bpy.props.StringProperty(name="Render Directory", subtype="DIR_PATH")
isolate_view: bpy.props.CollectionProperty(type=RR_isolate_collection_prop)
@property
def render_dir_path(self):
if not self.is_render_dir_valid:
return None
return Path(bpy.path.abspath(self.render_dir)).absolute()
@property
def is_render_dir_valid(self) -> bool:
if not self.render_dir:
return False
if not bpy.data.filepath and self.render_dir.startswith("//"):
return False
return True
class RR_property_group_sequence(bpy.types.PropertyGroup):
"""
Property group that will be registered on sequence strips.
"""
is_render: bpy.props.BoolProperty(name="Is Render")
is_approved: bpy.props.BoolProperty(name="Is Approved")
is_pushed_to_edit: bpy.props.BoolProperty(name="Is Pushed To Edit")
frames_found_text: bpy.props.StringProperty(name="Frames Found")
shot_name: bpy.props.StringProperty(name="Shot")
# ----------------REGISTER--------------.
classes = [
RR_isolate_collection_prop,
RR_property_group_scene,
RR_property_group_sequence,
]
def register():
for cls in classes:
bpy.utils.register_class(cls)
# Scene Properties.
bpy.types.Scene.rr = bpy.props.PointerProperty(
name="Render Review",
type=RR_property_group_scene,
description="Metadata that is required for render_review",
)
# Strip Properties.
bpy.types.Strip.rr = bpy.props.PointerProperty(
name="Render Review",
type=RR_property_group_sequence,
description="Metadata that is required for render_review",
)
def unregister():
for cls in reversed(classes):
bpy.utils.unregister_class(cls)