Skip to content

Commit 69760b1

Browse files
authored
Visual Timeline Editor: Fix various copy/paste issues (#2459)
Fixes multiple edge cases of copying and pasting events in the visual editor.
1 parent b21dce8 commit 69760b1

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

addons/dialogic/Editor/TimelineEditor/VisualEditor/timeline_editor_visual.gd

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -430,12 +430,12 @@ func get_events_indexed(events:Array) -> Dictionary:
430430
if event.resource is DialogicEndBranchEvent:
431431
continue
432432

433-
indexed_dict[event.get_index()] = event.resource.to_text()
433+
indexed_dict[event.get_index()] = event.resource._store_as_string()
434434

435435
# store an end branch if it is selected or connected to a selected event
436436
if 'end_node' in event and event.end_node:
437437
event = event.end_node
438-
indexed_dict[event.get_index()] = event.resource.to_text()
438+
indexed_dict[event.get_index()] = event.resource._store_as_string()
439439
elif event.resource is DialogicEndBranchEvent:
440440
if event.parent_node in events: # add local index
441441
indexed_dict[event.get_index()] += str(events.find(event.parent_node))
@@ -476,7 +476,7 @@ func add_events_indexed(indexed_events:Dictionary) -> void:
476476
event_resource = i.duplicate()
477477
break
478478

479-
event_resource.from_text(indexed_events[event_idx])
479+
event_resource._load_from_string(indexed_events[event_idx])
480480

481481
# now create the visual block.
482482
deselect_all_items()
@@ -547,7 +547,7 @@ func copy_selected_events() -> void:
547547

548548
var event_copy_array := []
549549
for item in selected_items:
550-
event_copy_array.append(item.resource.to_text())
550+
event_copy_array.append(item.resource._store_as_string())
551551
if item.resource is DialogicEndBranchEvent:
552552
if item.parent_node in selected_items: # add local index
553553
event_copy_array[-1] += str(selected_items.find(item.parent_node))
@@ -1104,16 +1104,17 @@ func _input(event:InputEvent) -> void:
11041104
get_viewport().set_input_as_handled()
11051105

11061106
"Ctrl+C":
1107+
select_events_indexed(get_events_indexed(selected_items))
11071108
copy_selected_events()
11081109
get_viewport().set_input_as_handled()
11091110

11101111
"Ctrl+V":
11111112
var events_list := get_clipboard_data()
1112-
var paste_position := -1
1113+
var paste_position := 0
11131114
if selected_items:
11141115
paste_position = selected_items[-1].get_index()+1
11151116
else:
1116-
paste_position = %Timeline.get_child_count()-1
1117+
paste_position = %Timeline.get_child_count()
11171118
if events_list:
11181119
TimelineUndoRedo.create_action("[D] Pasting "+str(len(events_list))+" event(s).")
11191120
TimelineUndoRedo.add_do_method(add_events_at_index.bind(events_list, paste_position))

0 commit comments

Comments
 (0)