add generic templates

This commit is contained in:
ChristopheSeux
2024-04-16 14:28:02 +02:00
parent 2960bab63d
commit 0055e0f39e
11 changed files with 343 additions and 116 deletions
+34 -2
View File
@@ -39,20 +39,52 @@ class VSETB_PT_main(VSETB_main, Panel):
# row.operator('vse_toolbox.load_projects', icon='FILE_REFRESH', text='', emboss=False)
def draw(self, context):
layout = self.layout
wm = context.window_manager
scn = context.scene
settings = get_scene_settings()
prefs = get_addon_prefs()
row = self.layout.row(align=False)
row = layout.row(align=True)
row.operator('vse_toolbox.load_projects', icon='FILE_REFRESH', text='', emboss=False)
row.separator(factor=0.5)
row.prop(settings, 'project_name', text='')
project = settings.active_project
if project and project.type == 'TVSHOW':
row.separator(factor=0.5)
row.prop(project, 'episode_name', text='')
row.separator(factor=0.5)
row.prop(project, "show_settings", icon="PREFERENCES", text='')
if project.show_settings:
box = layout.box()
split = box.split(factor=0.3)
name_col = split.column()
template_col = split.column()
row = name_col.row(align=True) # Padding
row.separator(factor=0.5)
row.label(text="Name")
row = template_col.row(align=True) # Padding
row.separator(factor=0.5)
row.label(text="Template")
row.operator("vse_toolbox.add_template", text="", icon='ADD', emboss=False)
for i, template in enumerate(project.templates):
row = name_col.row()
row.prop(template, "name", text="")
row = template_col.row(align=True)
subrow = row.row()
subrow.prop(template, "value", text="")
row.separator(factor=0.25)
row.operator("vse_toolbox.remove_template", text="", icon='REMOVE', emboss=False).index = i
# settings = get_scene_settings()
# prefs = get_addon_prefs()
@@ -173,7 +205,7 @@ class VSETB_PT_settings(VSETB_main, Panel):
class VSETB_PT_imports(VSETB_main, Panel):
bl_label = "Imports"
#bl_parent_id = "VSETB_PT_main"
bl_options = {'DEFAULT_CLOSED'}
#bl_options = {'DEFAULT_CLOSED'}
def draw_header_preset(self, context):
self.layout.operator('vse_toolbox.import_files', icon='IMPORT', text='', emboss=False)
+4
View File
@@ -63,6 +63,7 @@ def load_trackers():
print(f'Could not register Tracker {name}')
print(e)
def load_prefs():
prefs = get_addon_prefs()
prefs_config_file = prefs.config_path
@@ -72,6 +73,9 @@ def load_prefs():
prefs_datas = read_file(os.path.expandvars(prefs_config_file))
if not prefs_datas:
return
for tracker_data in prefs_datas['trackers']:
tracker_name = norm_str(tracker_data['name'])
if not hasattr(prefs.trackers, tracker_name):
+28 -15
View File
@@ -159,6 +159,10 @@ class Episode(PropertyGroup):
return self.get(settings.project_name)
class Template(PropertyGroup):
value : StringProperty()
class SpreadsheetExportCell(PropertyGroup):
export_name : StringProperty()
enabled : BoolProperty(default=True)
@@ -241,19 +245,21 @@ def get_task_type_items(self, context):
class ImportShots(PropertyGroup):
import_source: EnumProperty(items=[(i, i.title(), '') for i in ('DISK', 'TRACKER')])
import_task: EnumProperty(items=[(i, i.title().replace('_', ' '), '')
for i in ('LAST', 'FROM_LIST', 'ALL')], default='FROM_LIST')
for i in ('FROM_LIST',)], default='FROM_LIST') #('LAST', 'FROM_LIST', 'ALL')
#sequence_dir_template: StringProperty(
# name="Sequence Template", default="$PROJECT_ROOT/sequences/{sequence}")
shot_folder_template: StringProperty(
name="Shot Template", default="$PROJECT_ROOT/sequences/sq{sequence}/sh{shot}")
#shot_folder_template: StringProperty(
# name="Shot Template", default="$PROJECT_ROOT/sequences/sq{sequence}/sh{shot}")
import_video_template : StringProperty(
name="Video Path", default="./{task}/render/{version}.{ext}")
video_template : StringProperty(
name="Video Path", default="//sources/{sequence}_{shot}_{task}.{ext}")
video_templates : CollectionProperty(type=PropertyGroup)
import_sequence: EnumProperty(items=[(i, i.title().replace('_', ' '), '')
for i in ('SELECTED_STRIPS', 'FROM_LIST', 'ALL')], default='FROM_LIST')
for i in ('FROM_LIST',)], default='FROM_LIST') #('SELECTED_STRIPS', 'FROM_LIST', 'ALL')
previews_folder: StringProperty(
name="Previews Folder", default="//sources", subtype='DIR_PATH')
@@ -262,7 +268,7 @@ class ImportShots(PropertyGroup):
class UploadToTracker(PropertyGroup):
render_strips: BoolProperty(default=False)
render_strip_template : StringProperty(
name="Movie Path", default="//render/{project_basename}.{ext}")
name="Movie Path", default="//render/{strip}.{ext}")
task : EnumProperty(items=get_task_type_items)
status : EnumProperty(items=get_task_status_items)
@@ -297,6 +303,9 @@ def on_episode_updated(self, context):
class Project(PropertyGroup):
id : StringProperty(default='')
show_settings : BoolProperty()
templates : CollectionProperty(type=Template)
shot_start_number : IntProperty(name="Shot Start Number", default=10, min=0)
shot_padding : IntProperty(name="Shot Padding", default=4, min=0, max=10)
@@ -316,28 +325,28 @@ class Project(PropertyGroup):
name="Shot Increment", default=10, min=0, step=10)
sequence_template : StringProperty(
name="Sequence Name", default="sq{sequence}")
name="Sequence Name", default="{sequence}")
episode_template : StringProperty(
name="Episode Name", default="ep{episode}")
name="Episode Name", default="{episode}")
shot_template : StringProperty(
name="Shot Name", default="sq{sequence}_sh{shot}")
name="Shot Name", default="{sequence}_{shot}")
render_video_template : StringProperty(
name="Movie Path", default="//render/{project_basename}.{ext}")
name="Movie Path", default="//render/{project}.mov")
render_audio_template : StringProperty(
name="Audio Path", default="//render/{project_basename}.wav")
name="Audio Path", default="//render/{project}.wav")
render_video_strip_template : StringProperty(
name="Strip Path", default="//render/shots/{strip}.{ext}")
name="Strip Path", default="//render/shots/{strip}.mov")
render_audio_strip_template: StringProperty(
name="Sound Path", default="//render/sounds/{strip}.wav")
render_video_sequence_template : StringProperty(
name="Sequence Path", default="//render/sequences/{sequence}.{ext}")
name="Sequence Path", default="//render/sequences/{sequence}.mov")
render_audio_sequence_template: StringProperty(
name="Sound Path", default="//render/sounds/{sequence}.wav")
@@ -359,7 +368,7 @@ class Project(PropertyGroup):
#render_sound_format: EnumProperty(items=[(e, e, '') for e in ('mp3', 'wav')])
export_edl_template : StringProperty(
name="Edl Path", default="//render/{project_basename}.edl")
name="Edl Path", default="//render/{project}.edl")
episode_name : EnumProperty(items=get_episodes_items, update=on_episode_updated)
episodes : CollectionProperty(type=Episode)
@@ -394,6 +403,9 @@ class Project(PropertyGroup):
data['episode'] = norm_str(self.episode_name)
data['project_basename'] = f"{data['project']}_{data['episode']}"
#for template in self.templates:
# data[template.name] = template.value
return data
def get_cell_types(self):
@@ -745,6 +757,7 @@ classes = (
AssetType,
TaskStatus,
Episode,
Template,
Metadata,
MetadataType,
Sequence,