NowPlaying, QuizToolbar and SongControls become their own scenes, the auto repeat switch moves into the music player scene, and downloading songs moves into a SongLoader node. The quiz only wires the parts together. Every node keeps its place on screen. Screenshots of every UI state are pixel-identical to before, the layout test still matches the original baseline, and each new part has its own tests.
26 lines
848 B
GDScript
26 lines
848 B
GDScript
class_name QuizToolbar
|
|
extends Control
|
|
## The row of quiz buttons under the top bar: reset playlist, reset points, settings
|
|
## and sound test.
|
|
|
|
signal reset_playlist_pressed
|
|
signal reset_points_pressed
|
|
signal settings_pressed
|
|
signal sound_test_pressed
|
|
|
|
@onready var reset_playlist_button: Button = $ResetPlaylistButton
|
|
@onready var sound_test_button: Button = $SoundTestButton
|
|
|
|
|
|
func _ready() -> void:
|
|
reset_playlist_button.pressed.connect(reset_playlist_pressed.emit)
|
|
$ResetPointsButton.pressed.connect(reset_points_pressed.emit)
|
|
$SettingsButton.pressed.connect(settings_pressed.emit)
|
|
sound_test_button.pressed.connect(sound_test_pressed.emit)
|
|
|
|
|
|
## Disables the buttons that use the song list, e.g. while the server syncs it.
|
|
func set_locked(locked: bool) -> void:
|
|
reset_playlist_button.disabled = locked
|
|
sound_test_button.disabled = locked
|