add generic templates
This commit is contained in:
+34
-18
@@ -12,10 +12,11 @@ from bpy.props import (BoolProperty, EnumProperty, StringProperty)
|
||||
|
||||
from vse_toolbox.constants import (ASSET_PREVIEWS, PREVIEWS_DIR, ASSET_ITEMS)
|
||||
|
||||
from vse_toolbox.sequencer_utils import (get_strips, get_strip_render_path, get_strip_sequence_name)
|
||||
from vse_toolbox.sequencer_utils import (get_strips, get_strip_render_path, get_strip_sequence_name,
|
||||
render_strip, get_render_attributes)
|
||||
|
||||
from vse_toolbox.bl_utils import (get_addon_prefs, get_scene_settings)
|
||||
from vse_toolbox.file_utils import (norm_name,)
|
||||
from vse_toolbox.file_utils import (norm_name, expand)
|
||||
from bpy.app.handlers import persistent
|
||||
|
||||
|
||||
@@ -36,7 +37,7 @@ class VSETB_OT_tracker_connect(Operator):
|
||||
settings = get_scene_settings()
|
||||
try:
|
||||
prefs.tracker.connect()
|
||||
self.report({'INFO'}, f'Sucessfully login to {settings.tracker_name.title()}')
|
||||
self.report({'INFO'}, f'successfully login to {settings.tracker_name.title()}')
|
||||
return {"FINISHED"}
|
||||
except Exception as e:
|
||||
print('e: ', e)
|
||||
@@ -121,6 +122,10 @@ class VSETB_OT_load_projects(Operator):
|
||||
(r,g,b), a = map(lambda component: component / 255, bytes.fromhex(color_str[-6:])), 1.0
|
||||
return (r,g,b,a)
|
||||
|
||||
def invoke(self, context, event):
|
||||
self.ctrl = event.ctrl
|
||||
return self.execute(context)
|
||||
|
||||
def execute(self, context):
|
||||
settings = get_scene_settings()
|
||||
prefs = get_addon_prefs()
|
||||
@@ -213,14 +218,16 @@ class VSETB_OT_load_projects(Operator):
|
||||
if project.name not in project_names:
|
||||
settings.projects.remove(list(settings.projects).index(project))
|
||||
|
||||
bpy.ops.vse_toolbox.load_settings()
|
||||
if self.ctrl or not settings.get('projects_loaded'):
|
||||
bpy.ops.vse_toolbox.load_settings()
|
||||
|
||||
if prev_project_name != '/' and prev_project_name in settings.projects:
|
||||
settings.project_name = prev_project_name
|
||||
|
||||
#if settings.active_project:
|
||||
# settings.active_project.set_strip_metadata()
|
||||
|
||||
|
||||
settings['projects_loaded'] = True
|
||||
|
||||
self.report({"INFO"}, 'Successfully Load Tracker Projects')
|
||||
|
||||
@@ -251,19 +258,16 @@ class VSETB_OT_new_episode(Operator):
|
||||
tracker = prefs.tracker
|
||||
|
||||
episode_name = settings.episode_template.format(index=int(self.episode_name))
|
||||
|
||||
#print(self.episode_name)
|
||||
#print('episode_name: ', episode_name)
|
||||
|
||||
episode = tracker.get_episode(episode_name)
|
||||
if episode:
|
||||
self.report({'ERROR'}, f'Episode {episode_name} already exists')
|
||||
return {"CANCELLED"}
|
||||
|
||||
tracker.new_episode(episode_name)
|
||||
# tracker.get_episodes
|
||||
tracker.update_project()
|
||||
|
||||
self.report({'INFO'}, f'Episode {episode_name} successfully created')
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
@@ -302,8 +306,6 @@ class VSETB_OT_upload_to_tracker(Operator):
|
||||
col.use_property_split = False
|
||||
col.prop(upload_to_tracker, 'render_strip_template', text='')
|
||||
col.use_property_split = True
|
||||
#else:
|
||||
# col.label(text=f'Source: {self.project.render_video_strip_template}')
|
||||
|
||||
col.separator()
|
||||
|
||||
@@ -329,21 +331,27 @@ class VSETB_OT_upload_to_tracker(Operator):
|
||||
#self.report({'ERROR'}, f'Export not implemented yet.')
|
||||
prefs = get_addon_prefs()
|
||||
settings = get_scene_settings()
|
||||
tracker = prefs.tracker
|
||||
|
||||
upload_to_tracker = self.project.upload_to_tracker
|
||||
render_attrs = get_render_attributes()
|
||||
project_templates = {t.name: t.value for t in self.project.templates}
|
||||
|
||||
episode = None
|
||||
if settings.active_episode:
|
||||
episode = settings.active_episode.id
|
||||
|
||||
format_data = {**settings.format_data, **self.project.format_data}
|
||||
|
||||
tracker = prefs.tracker
|
||||
|
||||
|
||||
status = upload_to_tracker.status
|
||||
if status == 'CURRENT':
|
||||
status = None
|
||||
|
||||
shot_strips = get_strips(channel='Shots', selected_only=True)
|
||||
context.window_manager.progress_begin(0, len(shot_strips))
|
||||
|
||||
for strip in get_strips(channel='Shots', selected_only=True):
|
||||
for i, strip in enumerate(shot_strips):
|
||||
context.window_manager.progress_update(i)
|
||||
strip_settings = strip.vsetb_strip_settings
|
||||
sequence_name = get_strip_sequence_name(strip)
|
||||
shot_name = strip.name
|
||||
@@ -369,12 +377,17 @@ class VSETB_OT_upload_to_tracker(Operator):
|
||||
|
||||
strip_data = {**format_data, **strip_settings.format_data}
|
||||
if upload_to_tracker.render_strips:
|
||||
preview_template = expandvars(upload_to_tracker.render_strip_template)
|
||||
preview_template = expand(upload_to_tracker.render_strip_template, **project_templates)
|
||||
strip_data['ext'] = 'mov'
|
||||
else:
|
||||
preview_template = expandvars(self.project.render_video_strip_template)
|
||||
|
||||
preview = preview_template.format(**strip_data)
|
||||
preview = Path(os.path.abspath(bpy.path.abspath(preview)))
|
||||
|
||||
if upload_to_tracker.render_strips:
|
||||
render_strip(strip, preview, attributes=render_attrs)
|
||||
|
||||
#print(preview)
|
||||
if not preview.exists():
|
||||
print(f'The preview {preview} not exists')
|
||||
@@ -387,7 +400,7 @@ class VSETB_OT_upload_to_tracker(Operator):
|
||||
preview = None
|
||||
|
||||
comment_data = None
|
||||
if status or comment or preview:
|
||||
if status or upload_to_tracker.comment or preview:
|
||||
comment_data = tracker.new_comment(task, comment=upload_to_tracker.comment, status=status)
|
||||
if preview:
|
||||
print('Upload preview from', preview)
|
||||
@@ -423,6 +436,8 @@ class VSETB_OT_upload_to_tracker(Operator):
|
||||
if task.comment and tracker_task.get('last_comment') != task.comment:
|
||||
tracker.new_comment(tracker_task, comment=task.comment)
|
||||
|
||||
context.window_manager.progress_end()
|
||||
|
||||
return {"FINISHED"}
|
||||
|
||||
|
||||
@@ -448,6 +463,7 @@ class VSETB_OT_open_shot_on_tracker(Operator):
|
||||
|
||||
return {"FINISHED"}
|
||||
|
||||
|
||||
@persistent
|
||||
def set_asset_items(scene=None):
|
||||
ASSET_ITEMS.clear()
|
||||
|
||||
Reference in New Issue
Block a user