add generic templates
This commit is contained in:
+67
-13
@@ -5,6 +5,7 @@ import os
|
||||
|
||||
import bpy
|
||||
from bpy.types import Operator
|
||||
from bpy.props import IntProperty
|
||||
|
||||
import vse_toolbox
|
||||
|
||||
@@ -37,6 +38,21 @@ class VSETB_OT_load_settings(Operator):
|
||||
bl_label = 'Load Settings'
|
||||
bl_description = 'Load VSE ToolBox settings from config file'
|
||||
|
||||
def set_config(self, data, values):
|
||||
for k, v in values.items():
|
||||
if not hasattr(data, k):
|
||||
print(f'{repr(data)} has no attribute {k}')
|
||||
continue
|
||||
|
||||
if isinstance(v, list):
|
||||
data[k] = v
|
||||
return
|
||||
|
||||
try:
|
||||
setattr(data, k, v)
|
||||
except Exception:
|
||||
print(f'Could not set property {k} with value {v} to {repr(data)}')
|
||||
|
||||
def execute(self, context):
|
||||
prefs = get_addon_prefs()
|
||||
settings = get_scene_settings()
|
||||
@@ -48,6 +64,10 @@ class VSETB_OT_load_settings(Operator):
|
||||
|
||||
if not addon_config:
|
||||
return {'CANCELLED'}
|
||||
|
||||
# Environ set
|
||||
for k, v in addon_config.get('environ', {}).items():
|
||||
os.environ[k] = str(v)
|
||||
|
||||
addon_config['trackers'] = addon_config.get('trackers')
|
||||
trackers_config = addon_config.pop('trackers')
|
||||
@@ -61,11 +81,10 @@ class VSETB_OT_load_settings(Operator):
|
||||
for k, v in tracker_config.items():
|
||||
setattr(tracker, k, v)
|
||||
|
||||
addon_config['spreadsheet_export'] = addon_config.get('spreadsheet_export', {})
|
||||
spreadsheet_export_config = addon_config.pop('spreadsheet_export')
|
||||
|
||||
addon_config['spreadsheet_import'] = addon_config.get('spreadsheet_import', {})
|
||||
spreadsheet_import_config = addon_config.pop('spreadsheet_import')
|
||||
spreadsheet_export_config = addon_config.pop('spreadsheet_export', {})
|
||||
spreadsheet_import_config = addon_config.pop('spreadsheet_import', {})
|
||||
upload_to_tracker_config = addon_config.pop('upload_to_tracker', {})
|
||||
import_shots_config = addon_config.pop('import_shots', {})
|
||||
|
||||
project_name = addon_config.get('project_name')
|
||||
if project_name not in settings.projects:
|
||||
@@ -77,12 +96,7 @@ class VSETB_OT_load_settings(Operator):
|
||||
|
||||
# Project Properties
|
||||
project = settings.active_project
|
||||
for k, v in addon_config.items():
|
||||
try:
|
||||
setattr(project, k, v)
|
||||
except Exception:
|
||||
print(f'Could not set property {k} with value {v} to project {settings.project_name}')
|
||||
|
||||
self.set_config(project, addon_config)
|
||||
|
||||
export_cells = project.spreadsheet_export.cells
|
||||
for k, v in spreadsheet_export_config.items():
|
||||
@@ -148,13 +162,53 @@ class VSETB_OT_load_settings(Operator):
|
||||
except Exception:
|
||||
print(f'Could not set option {k} with value {v} to spreadsheet')
|
||||
|
||||
self.report({"INFO"}, 'Settings loaded with sucess')
|
||||
# Upload to Tracker
|
||||
self.set_config(project.upload_to_tracker, upload_to_tracker_config)
|
||||
|
||||
# Import Shots
|
||||
self.set_config(project.import_shots, import_shots_config)
|
||||
|
||||
self.report({"INFO"}, 'Settings loaded with success')
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
class VSETB_OT_add_template(Operator):
|
||||
bl_idname = "vse_toolbox.add_template"
|
||||
bl_label = "Add Template"
|
||||
bl_options = {"REGISTER", "UNDO"}
|
||||
|
||||
def execute(self, context):
|
||||
scn = context.scene
|
||||
settings = get_scene_settings()
|
||||
project = settings.active_project
|
||||
|
||||
project.templates.add()
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
class VSETB_OT_remove_template(Operator):
|
||||
bl_idname = "vse_toolbox.remove_template"
|
||||
bl_label = "Remove Template"
|
||||
bl_options = {"REGISTER", "UNDO"}
|
||||
|
||||
index : IntProperty()
|
||||
|
||||
def execute(self, context):
|
||||
scn = context.scene
|
||||
settings = get_scene_settings()
|
||||
project = settings.active_project
|
||||
|
||||
project.templates.remove(self.index)
|
||||
|
||||
return {'FINISHED'}
|
||||
|
||||
|
||||
classes = (
|
||||
VSETB_OT_reload_addon,
|
||||
VSETB_OT_load_settings
|
||||
VSETB_OT_load_settings,
|
||||
VSETB_OT_add_template,
|
||||
VSETB_OT_remove_template
|
||||
)
|
||||
|
||||
def register():
|
||||
|
||||
Reference in New Issue
Block a user