class_name SoundtrackStatsPopup extends BasePopup ## Shows a soundtrack's play statistics and every song in it, most played first. ## Opened by clicking a card in the statistics view. @onready var title_label: Label = %TitleLabel @onready var summary_label: Label = %SummaryLabel @onready var song_list: VBoxContainer = %SongList ## Shows [param soundtrack] and opens the popup. func show_soundtrack(soundtrack: SoundtrackWithSongs) -> void: title_label.text = soundtrack.soundtrack_name var summary: PackedStringArray = [SoundtrackCard.played_text(soundtrack.soundtrack_played)] var last_played: String = SoundtrackCard.last_played_text(soundtrack.soundtrack_last_played) if !last_played.is_empty(): summary.append(last_played) summary.append("%d %s" % [soundtrack.songs.size(), "song" if soundtrack.songs.size() == 1 else "songs"]) summary_label.text = " ยท ".join(summary) Settings.delete_children(song_list) var songs: Array[SongInfoForStats] = SoundtrackCard.songs_by_plays(soundtrack.songs) for row: int in songs.size(): song_list.add_child(ListRow.create(SoundtrackCard.song_text(songs[row]), row, &"TextLarge")) open()