WIP: track creation and deletion both in frontend and backend.
This commit is contained in:
44
Scripts/TrackView.gd
Normal file
44
Scripts/TrackView.gd
Normal file
@@ -0,0 +1,44 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user