add generic templates
This commit is contained in:
+34
-2
@@ -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)
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user