feat: use list to display virtools encodings settings, instead of raw string.

- use list to show bmap encoding settings, instead of user input raw string. it will give a more obvisous interface.
	* add bmap encoding setting properties in ptrprop_resolver.
	* update ptrprop_resolver for more clear usage.
- following features has not been implemented yet.
	* default value for bmap encoding list.
	* the bridge function in ioport_shared module (filter empty item in result)
	* validate encoding list result when importing and exporting virtools file.
This commit is contained in:
2025-01-08 13:21:35 +08:00
parent f4d3e48be2
commit 0862ecd269
3 changed files with 207 additions and 18 deletions

View File

@ -256,21 +256,21 @@ class ExportParams():
# draw picker
if self.export_mode == 'COLLECTION':
PROP_ptrprop_resolver.draw_export_collection(body)
PROP_ptrprop_resolver.PtrPropResolver.draw_export_collection(body)
elif self.export_mode == 'OBJECT':
PROP_ptrprop_resolver.draw_export_object(body)
PROP_ptrprop_resolver.PtrPropResolver.draw_export_object(body)
def general_get_export_objects(self) -> tuple[bpy.types.Object] | None:
"""
Return resolved exported objects or None if no selection.
"""
if self.export_mode == 'COLLECTION':
col: bpy.types.Collection = PROP_ptrprop_resolver.get_export_collection()
col: bpy.types.Collection = PROP_ptrprop_resolver.PtrPropResolver.get_export_collection()
if col is None: return None
else:
return tuple(col.all_objects)
else:
obj: bpy.types.Object = PROP_ptrprop_resolver.get_export_object()
obj: bpy.types.Object = PROP_ptrprop_resolver.PtrPropResolver.get_export_object()
if obj is None: return None
else: return (obj, )
@ -314,6 +314,7 @@ class VirtoolsParams():
# draw encodings
body.label(text = 'Encodings')
body.prop(self, 'vt_encodings', text = '')
PROP_ptrprop_resolver.PtrPropResolver.draw_ioport_encodings(body)
# following field are only valid in exporter
if not is_importer: