import csv from clipboard

This commit is contained in:
“christopheseux”
2023-05-05 09:46:50 +02:00
parent 38b3e7b504
commit 1ff1b37adb
4 changed files with 56 additions and 21 deletions
+4 -3
View File
@@ -101,7 +101,7 @@ class VSETB_OT_load_settings(Operator):
if spreadsheet_import_config:
import_cells.clear()
cell_names = project.get_cell_names()
cell_types = project.get_cell_types()
for k, v in spreadsheet_import_config.items():
if k == 'cells':
for i, cell_data in enumerate(v):
@@ -113,11 +113,12 @@ class VSETB_OT_load_settings(Operator):
cell.name = cell_data['name']
norm_import_name = norm_str(cell_data.get('import_name', cell_data['name']))
import_name = next((c for c in cell_names if norm_str(c) == norm_import_name), None)
import_name = next((n for n, t in cell_types.items() if norm_str(n) == norm_import_name), None)
if import_name is None:
print(f'import_name {norm_import_name} not in {cell_names}')
print(f'import_name {norm_import_name} not in {list(cell_types.values())}')
else:
cell.import_name = import_name
cell.type = cell_types[import_name]
if 'enabled' in cell_data:
try:
+15 -10
View File
@@ -14,7 +14,7 @@ from bl_operators.presets import AddPresetBase
from vse_toolbox.sequencer_utils import (get_strips, get_strip_sequence_name)
from vse_toolbox.bl_utils import (get_addon_prefs, get_scene_settings)
from vse_toolbox.file_utils import open_file, install_module
from vse_toolbox.file_utils import (open_file, install_module, fuzzy_match)
class VSETB_MT_export_spreadsheet_presets(Menu):
@@ -143,12 +143,23 @@ class VSETB_OT_spreadsheet_from_clipboard(Operator):
def execute(self, context):
scn = context.scene
project = get_scene_settings().active_project
import_cells = project.spreadsheet_import.cells
import_cells.clear()
spreadsheet = context.window_manager.clipboard
reader = list(csv.reader(spreadsheet.splitlines(), delimiter='\t'))
header = reader[0]
print(header)
cell_types = project.get_cell_types()
rows = list(csv.reader(spreadsheet.splitlines(), delimiter='\t'))
for cell_name in rows[0]:
if not cell_name:
continue
cell = import_cells.add()
cell.name = cell_name
cell.import_name = max(cell_types.keys(), key=lambda x: fuzzy_match(cell_name, x))
cell.enabled = True
project.spreadsheet_import.use_custom_cells = True
return {"FINISHED"}
@@ -194,12 +205,7 @@ class VSETB_OT_import_spreadsheet(Operator):
row.operator("vse_toolbox.spreadsheet_from_clipboard", text='Clipboard', icon='PASTEDOWN')
row.operator("vse_toolbox.spreadsheet_from_file", text='File', icon='FILE')
row = layout.row(align=True)
row.prop(spreadsheet, 'use_custom_cells', text='Custom Cells')
col = layout.column(align=False)
col.enabled = spreadsheet.use_custom_cells
row = col.row(align=True, heading='Custom Asset Name')
row.use_property_split = True
@@ -211,7 +217,6 @@ class VSETB_OT_import_spreadsheet(Operator):
sub.label(icon='BLANK1')
row = layout.row()
row.enabled = spreadsheet.use_custom_cells
row.template_list("VSETB_UL_spreadsheet_import", "spreadsheet_import", spreadsheet, "cells", spreadsheet, "cell_index", rows=8)
col_tool = row.column(align=True)