2025-12-01
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# SPDX-FileCopyrightText: 2021 Blender Studio Tools Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
import bpy
|
||||
|
||||
from .ops import (
|
||||
CS_OT_make_contactsheet,
|
||||
CS_OT_exit_contactsheet,
|
||||
)
|
||||
from . import opsdata
|
||||
|
||||
|
||||
class CS_PT_contactsheet(bpy.types.Panel):
|
||||
""" """
|
||||
|
||||
bl_category = "Contactsheet"
|
||||
bl_label = "Contactsheet"
|
||||
bl_space_type = "SEQUENCE_EDITOR"
|
||||
bl_region_type = "UI"
|
||||
bl_order = 10
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context: bpy.types.Context) -> bool:
|
||||
# Return opsdata.poll_make_contactsheet(context).
|
||||
return True
|
||||
|
||||
def draw(self, context: bpy.types.Context) -> None:
|
||||
layout = self.layout
|
||||
|
||||
# Handle case if scene is contactsheet.
|
||||
if context.scene.contactsheet.is_contactsheet:
|
||||
# Exit contact sheet.
|
||||
row = layout.row(align=True)
|
||||
row.operator(CS_OT_exit_contactsheet.bl_idname, icon="X")
|
||||
return
|
||||
|
||||
# Make contact sheet.
|
||||
row = layout.row(align=True)
|
||||
|
||||
sequences = context.selected_sequences
|
||||
if not sequences:
|
||||
valid_sequences = opsdata.get_top_level_valid_strips_continuous(context)
|
||||
else:
|
||||
valid_sequences = opsdata.get_valid_cs_sequences(sequences)
|
||||
|
||||
text = f"Make Contactsheet with {len(valid_sequences)} strips"
|
||||
|
||||
row.operator(CS_OT_make_contactsheet.bl_idname, icon="MESH_GRID", text=text)
|
||||
icon = "UNLOCKED" if context.scene.contactsheet.use_custom_rows else "LOCKED"
|
||||
row.prop(context.scene.contactsheet, "use_custom_rows", text="", icon=icon)
|
||||
|
||||
if context.scene.contactsheet.use_custom_rows:
|
||||
layout.row(align=True).prop(context.scene.contactsheet, "rows")
|
||||
|
||||
# Contact sheet resolution.
|
||||
row = layout.row(align=True)
|
||||
row.prop(context.scene.contactsheet, "contactsheet_x", text="X")
|
||||
row.prop(context.scene.contactsheet, "contactsheet_y", text="Y")
|
||||
|
||||
|
||||
# ----------------REGISTER--------------.
|
||||
|
||||
classes = [
|
||||
CS_PT_contactsheet,
|
||||
]
|
||||
|
||||
|
||||
def register():
|
||||
for cls in classes:
|
||||
bpy.utils.register_class(cls)
|
||||
|
||||
|
||||
def unregister():
|
||||
for cls in reversed(classes):
|
||||
bpy.utils.unregister_class(cls)
|
||||
Reference in New Issue
Block a user