import csv from clipboard
This commit is contained in:
+4
-3
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user