extends Control class_name TrackView @export var controller: Node @export var track_scene: PackedScene @onready var track_list: VBoxContainer = %TrackList signal track_added(idx: int) signal track_deleted(idx: int) signal tracks_updated() func _ready() -> void: pass func add_track(idx: int): track_added.emit(idx) tracks_updated.emit() pass func delete_track(idx: int): track_deleted.emit(idx) _track_deleted(idx) tracks_updated.emit() pass func _track_added(): var track = track_scene.instantiate() as Track track.on_deleted.connect(delete_track) track_list.add_child(track) pass func _track_duplicated(idx: int): pass func _track_renamed(idx: int): pass func _track_deleted(idx: int): var track = track_list.get_child(idx) track.call_deferred("free") pass func get_track_elements() -> Array[Node]: return track_list.get_children()