prop_search
parent
5c35bae0e3
commit
a7afedd49b
|
@ -631,7 +631,11 @@ class VSETB_OT_load_projects(Operator):
|
|||
metadata_type = project.metadata_types.add()
|
||||
metadata_type.name = metadata_data['name']
|
||||
metadata_type.field_name = metadata_data['field_name']
|
||||
metadata_type['choices'] = metadata_data['choices']
|
||||
#metadata_type['choices'] = metadata_data['choices']
|
||||
for choice in metadata_data['choices']:
|
||||
choice_item = metadata_type.choices.add()
|
||||
choice_item.name = choice
|
||||
|
||||
metadata_type['entity_type'] = metadata_data['entity_type'].upper()
|
||||
|
||||
for status_data in tracker.get_task_statuses(project_data):
|
||||
|
|
20
panels.py
20
panels.py
|
@ -274,8 +274,24 @@ class VSETB_PT_metadata(VSETB_main, Panel):
|
|||
layout.prop(strip_settings, 'description', text='DESCRIPTION')
|
||||
|
||||
#col = layout.column()
|
||||
for key in strip_settings.metadata.__annotations__.keys():
|
||||
layout.prop(strip_settings.metadata, key, text=key.upper())
|
||||
for metadata_type in project.metadata_types:
|
||||
if metadata_type.entity_type == 'SHOT':
|
||||
row = layout.row(align=True)
|
||||
metadata_key = metadata_type.field_name
|
||||
if metadata_type.choices:
|
||||
metadata_value = getattr(strip_settings.metadata, metadata_key)
|
||||
icon = 'LAYER_USED'
|
||||
if metadata_value:
|
||||
if metadata_value in metadata_type.choices:
|
||||
icon = 'DOT'
|
||||
else:
|
||||
icon = 'ADD'
|
||||
|
||||
row.prop_search(strip_settings.metadata, metadata_key, metadata_type, 'choices',
|
||||
results_are_suggestions=True, icon=icon)
|
||||
|
||||
else:
|
||||
row.prop(strip_settings.metadata, metadata_key, text=metadata_key.upper())
|
||||
|
||||
classes = (
|
||||
VSETB_PT_main,
|
||||
|
|
|
@ -86,6 +86,7 @@ def get_preview_items(self, context):
|
|||
|
||||
return []
|
||||
|
||||
|
||||
class Asset(PropertyGroup):
|
||||
name : StringProperty(default='')
|
||||
id : StringProperty(default='')
|
||||
|
@ -97,7 +98,7 @@ class Asset(PropertyGroup):
|
|||
|
||||
@property
|
||||
def label(self):
|
||||
return f"{self.asset_type} / {self.norm_name}"
|
||||
return f"{self.asset_type} / {self.tracker_name}"
|
||||
|
||||
@property
|
||||
def icon_id(self):
|
||||
|
@ -129,8 +130,8 @@ class AssetType(PropertyGroup):
|
|||
|
||||
|
||||
class MetadataType(PropertyGroup):
|
||||
choices = []
|
||||
choice : EnumProperty(items=lambda s, c: [(c, c.replace(' ', '_').upper(), '') for c in s['choices']])
|
||||
#choices = []
|
||||
choices : CollectionProperty(type=PropertyGroup)#EnumProperty(items=lambda s, c: [(c, c.replace(' ', '_').upper(), '') for c in s['choices']])
|
||||
field_name : StringProperty()
|
||||
entity_type : StringProperty()
|
||||
|
||||
|
@ -255,10 +256,11 @@ class Project(PropertyGroup):
|
|||
field_name = metadata_type.field_name
|
||||
name = metadata_type.name
|
||||
|
||||
if metadata_type.get('choices'):
|
||||
prop = bpy.props.EnumProperty(items=[(c, c, '') for c in ['/'] + metadata_type['choices']], name=name)
|
||||
else:
|
||||
prop = bpy.props.StringProperty(name=name)
|
||||
#if metadata_type.get('choices'):
|
||||
# prop = #bpy.props.EnumProperty(items=[(c, c, '') for c in ['/'] + metadata_type['choices']], name=name)
|
||||
#else:
|
||||
# prop = #bpy.props.StringProperty(name=name)
|
||||
prop = bpy.props.StringProperty(name=name)
|
||||
|
||||
Metadata.__annotations__[field_name] = prop
|
||||
setattr(Metadata, field_name, prop)
|
||||
|
@ -436,17 +438,13 @@ def load_handler(dummy):
|
|||
#settings.active_project.set_spreadsheet()
|
||||
os.environ['TRACKER_PROJECT_ID'] = settings.active_project.id
|
||||
|
||||
|
||||
for asset in project.assets:
|
||||
preview_id = asset.preview
|
||||
preview_path = Path(PREVIEWS_DIR / project.id / preview_id).with_suffix('.png')
|
||||
|
||||
|
||||
if preview_path.exists() and preview_id not in ASSET_PREVIEWS:
|
||||
ASSET_PREVIEWS.load(preview_id, preview_path.as_posix(), 'IMAGE', True)
|
||||
print(preview_path)
|
||||
|
||||
print(ASSET_PREVIEWS)
|
||||
|
||||
|
||||
def register():
|
||||
for cls in classes:
|
||||
|
|
Loading…
Reference in New Issue