diff --git a/main/TopBar.tscn b/main/TopBar.tscn index 69132ad..6e80cba 100644 --- a/main/TopBar.tscn +++ b/main/TopBar.tscn @@ -67,62 +67,58 @@ horizontal_alignment = 2 vertical_alignment = 1 text_overrun_behavior = 3 -[node name="SyncButton" type="Button" parent="." unique_id=1228313556] +[node name="Buttons" type="HBoxContainer" parent="."] layout_mode = 0 -offset_left = 1450.0 -offset_top = 8.0 -offset_right = 1520.0 -offset_bottom = 48.0 +offset_left = 1200.0 +offset_top = 10.0 +offset_right = 1856.0 +offset_bottom = 46.0 +mouse_filter = 2 +theme_override_constants/separation = 12 +alignment = 2 + +[node name="SyncButton" type="Button" parent="Buttons" unique_id=1228313556] +unique_name_in_owner = true +layout_mode = 2 focus_mode = 0 action_mode = 0 text = "Sync" -[node name="SettingsButton" type="Button" parent="." unique_id=1228313557] -layout_mode = 0 -offset_left = 1538.0 -offset_top = 8.0 -offset_right = 1608.0 -offset_bottom = 48.0 +[node name="SettingsButton" type="Button" parent="Buttons" unique_id=1228313557] +unique_name_in_owner = true +layout_mode = 2 focus_mode = 0 action_mode = 0 text = "Settings" -[node name="ShortcutsButton" type="Button" parent="." unique_id=2066498226] -layout_mode = 0 -offset_left = 1626.0 -offset_top = 8.0 -offset_right = 1696.0 -offset_bottom = 48.0 +[node name="ShortcutsButton" type="Button" parent="Buttons" unique_id=2066498226] +unique_name_in_owner = true +layout_mode = 2 focus_mode = 0 action_mode = 0 text = "Shortcuts" -[node name="AboutButton" type="Button" parent="." unique_id=1057035253] -layout_mode = 0 -offset_left = 1722.0 -offset_top = 8.0 -offset_right = 1792.0 -offset_bottom = 48.0 +[node name="AboutButton" type="Button" parent="Buttons" unique_id=1057035253] +unique_name_in_owner = true +layout_mode = 2 focus_mode = 0 action_mode = 0 text = "About" -[node name="QRButton" type="Button" parent="." unique_id=2021908559] -layout_mode = 0 -offset_left = 1802.0 -offset_top = 8.0 -offset_right = 1872.0 -offset_bottom = 48.0 +[node name="QRButton" type="Button" parent="Buttons" unique_id=2021908559] +unique_name_in_owner = true +layout_mode = 2 focus_mode = 0 action_mode = 0 text = "QR" [node name="QuizTab" type="Button" parent="." unique_id=1903412671] +unique_name_in_owner = true layout_mode = 0 -offset_left = 840.0 -offset_top = 8.0 -offset_right = 955.0 -offset_bottom = 48.0 +offset_left = 839.0 +offset_top = 10.0 +offset_right = 954.0 +offset_bottom = 46.0 focus_mode = 0 theme_type_variation = &"TabButton" toggle_mode = true @@ -132,11 +128,12 @@ button_group = SubResource("ButtonGroup_tabs") text = "Quiz" [node name="StatisticsTab" type="Button" parent="." unique_id=1903412672] +unique_name_in_owner = true layout_mode = 0 -offset_left = 965.0 -offset_top = 8.0 -offset_right = 1080.0 -offset_bottom = 48.0 +offset_left = 966.0 +offset_top = 10.0 +offset_right = 1081.0 +offset_bottom = 46.0 focus_mode = 0 theme_type_variation = &"TabButton" toggle_mode = true diff --git a/main/top_bar.gd b/main/top_bar.gd index e8a2b33..4713b31 100644 --- a/main/top_bar.gd +++ b/main/top_bar.gd @@ -17,22 +17,22 @@ signal qr_pressed ## Emitted when a tab is chosen: [code]&"quiz"[/code] or [code]&"statistics"[/code]. signal tab_selected(tab: StringName) -@onready var sync_button: Button = $SyncButton +@onready var sync_button: Button = %SyncButton @onready var debug_label: Label = $DebugLabel @onready var update_label: Label = $UpdateLabel @onready var offline_label: Label = $OfflineLabel -@onready var qr_button: Button = $QRButton -@onready var quiz_tab: Button = $QuizTab -@onready var statistics_tab: Button = $StatisticsTab +@onready var qr_button: Button = %QRButton +@onready var quiz_tab: Button = %QuizTab +@onready var statistics_tab: Button = %StatisticsTab func _ready() -> void: # Debug builds use the local server, see Settings debug_label.visible = Settings.is_debug sync_button.pressed.connect(sync_pressed.emit) - $SettingsButton.pressed.connect(settings_pressed.emit) - $ShortcutsButton.pressed.connect(shortcuts_pressed.emit) - $AboutButton.pressed.connect(about_pressed.emit) + %SettingsButton.pressed.connect(settings_pressed.emit) + %ShortcutsButton.pressed.connect(shortcuts_pressed.emit) + %AboutButton.pressed.connect(about_pressed.emit) qr_button.pressed.connect(qr_pressed.emit) quiz_tab.pressed.connect(tab_selected.emit.bind(&"quiz")) statistics_tab.pressed.connect(tab_selected.emit.bind(&"statistics")) diff --git a/popups/SettingsPopup.tscn b/popups/SettingsPopup.tscn index aa1120d..273bd64 100644 --- a/popups/SettingsPopup.tscn +++ b/popups/SettingsPopup.tscn @@ -171,6 +171,7 @@ custom_minimum_size = Vector2(30, 0) layout_mode = 2 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "-1" [node name="IncreaseCacheButton" type="Button" parent="SettingsPanel/VBoxContainer/CacheRow" unique_id=1806295533] @@ -179,6 +180,7 @@ custom_minimum_size = Vector2(30, 0) layout_mode = 2 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "+1" [node name="LowPlayedCheckButton" type="CheckButton" parent="SettingsPanel/VBoxContainer"] diff --git a/quiz/PlayerRow.tscn b/quiz/PlayerRow.tscn index 463e2f5..60ff2f4 100644 --- a/quiz/PlayerRow.tscn +++ b/quiz/PlayerRow.tscn @@ -4,90 +4,81 @@ [ext_resource type="Texture2D" uid="uid://r4as0nmtoa7p" path="res://noCharacter.png" id="2_hpj3s"] [ext_resource type="Texture2D" uid="uid://b2kj6m8qpsgb1" path="res://icons/person_remove_light.svg" id="3_j3uxe"] -[node name="PlayerRow" type="Control"] -custom_minimum_size = Vector2(2.08165e-12, 40) -layout_mode = 3 -anchors_preset = 0 -offset_bottom = 40.0 +[node name="PlayerRow" type="PanelContainer"] +custom_minimum_size = Vector2(0, 40) size_flags_horizontal = 3 +theme_type_variation = &"ListRowEven" script = ExtResource("1_if4kc") [node name="HBoxContainer" type="HBoxContainer" parent="."] -custom_minimum_size = Vector2(2.08165e-12, 40) -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="Panel4" type="Panel" parent="HBoxContainer"] -custom_minimum_size = Vector2(5, 40) layout_mode = 2 -theme_type_variation = &"DarkSpacer" +theme_override_constants/separation = 8 [node name="Name" type="Label" parent="HBoxContainer"] unique_name_in_owner = true -custom_minimum_size = Vector2(130, 40) layout_mode = 2 size_flags_horizontal = 3 -size_flags_vertical = 1 -text = ": 0" +mouse_filter = 1 +theme_type_variation = &"TextMedium" vertical_alignment = 1 clip_text = true text_overrun_behavior = 3 -[node name="Panel3" type="Panel" parent="HBoxContainer"] -custom_minimum_size = Vector2(16, 2.08165e-12) -layout_mode = 2 -theme_type_variation = &"DarkSpacer" - -[node name="Character" type="TextureButton" parent="HBoxContainer"] +[node name="Score" type="Label" parent="HBoxContainer"] unique_name_in_owner = true -custom_minimum_size = Vector2(80, 40) +custom_minimum_size = Vector2(40, 0) layout_mode = 2 +theme_type_variation = &"PlayerScore" +text = "0" +horizontal_alignment = 2 +vertical_alignment = 1 + +[node name="CharacterFrame" type="PanelContainer" parent="HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 4 +theme_type_variation = &"PlayerCharacter" + +[node name="Character" type="TextureButton" parent="HBoxContainer/CharacterFrame"] +unique_name_in_owner = true +custom_minimum_size = Vector2(64, 32) +layout_mode = 2 +tooltip_text = "Change character" focus_mode = 0 action_mode = 0 texture_normal = ExtResource("2_hpj3s") ignore_texture_size = true stretch_mode = 5 -[node name="Panel2" type="Panel" parent="HBoxContainer"] -custom_minimum_size = Vector2(30, 40) -layout_mode = 2 -theme_type_variation = &"DarkSpacer" - [node name="AddPoint" type="Button" parent="HBoxContainer"] unique_name_in_owner = true -custom_minimum_size = Vector2(40, 40) +custom_minimum_size = Vector2(40, 36) layout_mode = 2 +size_flags_vertical = 4 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "+1" -[node name="Panel5" type="Panel" parent="HBoxContainer"] -custom_minimum_size = Vector2(3, 40) -layout_mode = 2 -theme_type_variation = &"DarkSpacer" - [node name="RemovePoint" type="Button" parent="HBoxContainer"] unique_name_in_owner = true -custom_minimum_size = Vector2(40, 40) +custom_minimum_size = Vector2(40, 36) layout_mode = 2 +size_flags_vertical = 4 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "-1" -[node name="Panel" type="Panel" parent="HBoxContainer"] -custom_minimum_size = Vector2(30, 40) -layout_mode = 2 -theme_type_variation = &"DarkSpacer" - [node name="RemovePlayer" type="TextureButton" parent="HBoxContainer"] unique_name_in_owner = true -custom_minimum_size = Vector2(40, 40) +visible = false +custom_minimum_size = Vector2(36, 36) layout_mode = 2 +size_flags_vertical = 4 +tooltip_text = "Remove player" focus_mode = 0 action_mode = 0 texture_normal = ExtResource("3_j3uxe") -stretch_mode = 0 +ignore_texture_size = true +stretch_mode = 5 diff --git a/quiz/PlayersPanel.tscn b/quiz/PlayersPanel.tscn index fd01079..e870e16 100644 --- a/quiz/PlayersPanel.tscn +++ b/quiz/PlayersPanel.tscn @@ -2,7 +2,6 @@ [ext_resource type="Script" path="res://quiz/players_panel.gd" id="part_script"] [ext_resource type="Texture2D" uid="uid://bcfmpd7h512ef" path="res://icons/person_add_light.svg" id="5_31tjv"] -[ext_resource type="Script" uid="uid://cgakje8gb37tf" path="res://quiz/player_name_field.gd" id="7_qsdfy"] [sub_resource type="InputEventKey" id="InputEventKey_03bm3"] device = -1 @@ -17,6 +16,7 @@ events = [SubResource("InputEventKey_03bm3")] layout_mode = 3 offset_right = 641.0 offset_bottom = 401.0 +theme_type_variation = &"PlayerList" script = ExtResource("part_script") [node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=270084211] @@ -26,55 +26,63 @@ layout_mode = 2 custom_minimum_size = Vector2(2.08165e-12, 40) layout_mode = 2 +[node name="HeaderBalance" type="Control" parent="VBoxContainer/HBoxContainer"] +custom_minimum_size = Vector2(36, 0) +layout_mode = 2 +mouse_filter = 2 + [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer" unique_id=1331357386] -custom_minimum_size = Vector2(2.08165e-12, 40) +custom_minimum_size = Vector2(0, 40) layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 1 +theme_type_variation = &"TextLarge" text = "Players" horizontal_alignment = 1 vertical_alignment = 1 [node name="AddPlayersButton" type="TextureButton" parent="VBoxContainer/HBoxContainer" unique_id=634410148] unique_name_in_owner = true -custom_minimum_size = Vector2(2.08165e-12, 40) +custom_minimum_size = Vector2(36, 36) layout_mode = 2 size_flags_horizontal = 8 +size_flags_vertical = 4 +tooltip_text = "Add or remove players (Alt+A)" focus_mode = 0 action_mode = 0 shortcut = SubResource("Shortcut_jafqj") texture_normal = ExtResource("5_31tjv") +ignore_texture_size = true +stretch_mode = 5 [node name="AddPlayerContainer" type="HBoxContainer" parent="VBoxContainer" unique_id=1371948739] unique_name_in_owner = true visible = false -custom_minimum_size = Vector2(2.08165e-12, 40) +custom_minimum_size = Vector2(0, 36) layout_mode = 2 +theme_override_constants/separation = 8 +alignment = 1 -[node name="Panel" type="Panel" parent="VBoxContainer/AddPlayerContainer" unique_id=1569854056] -layout_mode = 2 -size_flags_horizontal = 3 -theme_type_variation = &"DarkSpacer" - -[node name="PlayerNameField" type="TextEdit" parent="VBoxContainer/AddPlayerContainer" unique_id=332535327] +[node name="PlayerNameField" type="LineEdit" parent="VBoxContainer/AddPlayerContainer" unique_id=332535327] unique_name_in_owner = true -custom_minimum_size = Vector2(2.08165e-12, 40) +custom_minimum_size = Vector2(220, 0) layout_mode = 2 -size_flags_horizontal = 3 placeholder_text = "Player name" -script = ExtResource("7_qsdfy") +max_length = 10 [node name="AddPlayerButton" type="Button" parent="VBoxContainer/AddPlayerContainer" unique_id=245001313] unique_name_in_owner = true -custom_minimum_size = Vector2(2.08165e-12, 40) layout_mode = 2 +focus_mode = 0 text = "Add" -[node name="Panel2" type="Panel" parent="VBoxContainer/AddPlayerContainer" unique_id=60215448] -custom_minimum_size = Vector2(2.08165e-12, 40) +[node name="AddPlayerHint" type="Label" parent="VBoxContainer/AddPlayerContainer"] +unique_name_in_owner = true +visible = false layout_mode = 2 -size_flags_horizontal = 3 -theme_type_variation = &"DarkSpacer" +theme_type_variation = &"HighlightMedium" +text = "Up to 7 players" +vertical_alignment = 1 [node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer" unique_id=1000000001] layout_mode = 2 @@ -84,5 +92,6 @@ horizontal_scroll_mode = 0 [node name="PlayersListVBoxContainer" type="VBoxContainer" parent="VBoxContainer/ScrollContainer" unique_id=1000000002] unique_name_in_owner = true layout_mode = 2 +theme_override_constants/separation = 2 size_flags_horizontal = 3 size_flags_vertical = 15 diff --git a/quiz/Quiz.tscn b/quiz/Quiz.tscn index b34c7bc..565e913 100644 --- a/quiz/Quiz.tscn +++ b/quiz/Quiz.tscn @@ -61,17 +61,17 @@ offset_bottom = 977.0 [node name="QuizToolbar" parent="." unique_id=1873301941 instance=ExtResource("scene_QuizToolbar")] layout_mode = 0 -offset_left = 1360.0 +offset_left = 1216.0 offset_top = 64.0 -offset_right = 1855.0 -offset_bottom = 95.0 +offset_right = 1856.0 +offset_bottom = 100.0 [node name="SongControls" parent="." unique_id=1640212773 instance=ExtResource("scene_SongControls")] layout_mode = 0 -offset_left = 65.0 -offset_top = 944.0 -offset_right = 368.0 -offset_bottom = 975.0 +offset_left = 64.0 +offset_top = 940.0 +offset_right = 704.0 +offset_bottom = 976.0 [node name="CharacterSelectPopup" parent="." unique_id=1679856322 instance=ExtResource("6_dhrvg")] unique_name_in_owner = true diff --git a/quiz/QuizSettingsCard.tscn b/quiz/QuizSettingsCard.tscn index faa65b9..de026d8 100644 --- a/quiz/QuizSettingsCard.tscn +++ b/quiz/QuizSettingsCard.tscn @@ -80,6 +80,7 @@ custom_minimum_size = Vector2(30, 0) layout_mode = 2 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "-1" [node name="IncreaseHideForSecondsButton" type="Button" parent="CardPanel/VBox/HideForSecondsRow"] @@ -88,6 +89,7 @@ custom_minimum_size = Vector2(30, 0) layout_mode = 2 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "+1" [node name="HideLengthCheckButton" type="CheckButton" parent="CardPanel/VBox"] @@ -127,6 +129,7 @@ custom_minimum_size = Vector2(30, 0) layout_mode = 2 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "-1" [node name="IncreaseButton" type="Button" parent="CardPanel/VBox/WinningScoreRow"] @@ -135,6 +138,7 @@ custom_minimum_size = Vector2(30, 0) layout_mode = 2 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "+1" [node name="InspirationRow" type="HBoxContainer" parent="CardPanel/VBox"] @@ -159,6 +163,7 @@ custom_minimum_size = Vector2(30, 0) layout_mode = 2 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "-1" [node name="IncreaseInspirationSpeedButton" type="Button" parent="CardPanel/VBox/InspirationRow"] @@ -167,4 +172,5 @@ custom_minimum_size = Vector2(30, 0) layout_mode = 2 focus_mode = 0 action_mode = 0 +theme_type_variation = &"StepButton" text = "+1" diff --git a/quiz/QuizToolbar.tscn b/quiz/QuizToolbar.tscn index f74c7ff..5ab293b 100644 --- a/quiz/QuizToolbar.tscn +++ b/quiz/QuizToolbar.tscn @@ -10,45 +10,34 @@ keycode = 83 [sub_resource type="Shortcut" id="Shortcut_search"] events = [SubResource("InputEventKey_search")] -[node name="QuizToolbar" type="Control" unique_id=1873301941] +[node name="QuizToolbar" type="HBoxContainer" unique_id=1873301941] layout_mode = 3 -offset_right = 495.0 -offset_bottom = 31.0 mouse_filter = 2 +theme_override_constants/separation = 12 +alignment = 2 script = ExtResource("part_script") [node name="SearchButton" type="Button" parent="." unique_id=1782453581] -layout_mode = 0 -offset_right = 111.0 -offset_bottom = 31.0 +layout_mode = 2 focus_mode = 0 action_mode = 0 shortcut = SubResource("Shortcut_search") text = "Search" [node name="ResetPlaylistButton" type="Button" parent="." unique_id=1754155620] -layout_mode = 0 -offset_left = 128.0 -offset_right = 239.0 -offset_bottom = 31.0 +layout_mode = 2 focus_mode = 0 action_mode = 0 text = "Reset playlist" [node name="ResetPointsButton" type="Button" parent="." unique_id=942880776] -layout_mode = 0 -offset_left = 256.0 -offset_right = 367.0 -offset_bottom = 31.0 +layout_mode = 2 focus_mode = 0 action_mode = 0 text = "Reset points" [node name="SoundTestButton" type="Button" parent="." unique_id=1332971879] -layout_mode = 0 -offset_left = 384.0 -offset_right = 495.0 -offset_bottom = 31.0 +layout_mode = 2 focus_mode = 0 action_mode = 0 text = "Sound test" diff --git a/quiz/SongControls.tscn b/quiz/SongControls.tscn index 8df5f48..050adbf 100644 --- a/quiz/SongControls.tscn +++ b/quiz/SongControls.tscn @@ -20,29 +20,24 @@ unicode = 231 [sub_resource type="Shortcut" id="Shortcut_d6fml"] events = [SubResource("InputEventKey_7dnqw")] -[node name="SongControls" type="Control" unique_id=1640212773] +[node name="SongControls" type="HBoxContainer" unique_id=1640212773] layout_mode = 3 -offset_right = 303.0 -offset_bottom = 31.0 mouse_filter = 2 +theme_override_constants/separation = 12 +alignment = 0 script = ExtResource("part_script") [node name="ShowAnswerButton" type="Button" parent="." unique_id=415388039] -layout_mode = 0 -offset_right = 111.0 -offset_bottom = 31.0 +layout_mode = 2 focus_mode = 0 action_mode = 0 shortcut = SubResource("Shortcut_a7fvb") text = "Show answer" [node name="NextButton" type="Button" parent="." unique_id=1744703488] -layout_mode = 0 -offset_left = 128.0 -offset_right = 303.0 -offset_bottom = 31.0 +layout_mode = 2 focus_mode = 0 disabled = true action_mode = 0 shortcut = SubResource("Shortcut_d6fml") -text = "Randomize new track" +text = "Next song" diff --git a/quiz/player_name_field.gd b/quiz/player_name_field.gd deleted file mode 100644 index c5f6f95..0000000 --- a/quiz/player_name_field.gd +++ /dev/null @@ -1,49 +0,0 @@ -class_name PlayerNameField -extends TextEdit -## The field for a new player's name. It keeps to one line of at most -## [constant MAX_NAME_LENGTH] characters, and reports Enter so the player can be added. - -## Emitted when Enter is pressed while the field has focus. - -signal enter_key_pressed - -## Emitted when Alt+A is pressed. -signal close_pressed - -## The longest name a player can have. -const MAX_NAME_LENGTH: int = 10 - -var current_text: String = "" -var cursor_line: int = 0 -var cursor_column: int = 0 - - -func _ready() -> void: - text_changed.connect(_on_text_changed) - - -func _input(event: InputEvent) -> void: - if event is InputEventKey and event.pressed: - if event.alt_pressed && event.keycode == KEY_A: - close_pressed.emit() - if has_focus(): - if event.keycode == KEY_ENTER || event.keycode == KEY_KP_ENTER: - enter_key_pressed.emit() - - -func _on_text_changed() -> void: - if text.contains("\n"): - text = text.replace("\n", "") - - var new_text: String = text - if new_text.length() > MAX_NAME_LENGTH: - text = current_text - # when replacing the text, the cursor will get moved to the beginning of the - # text, so move it back to where it was - set_caret_line(cursor_line) - set_caret_column(cursor_column) - - current_text = text - # save current position of cursor for when we have reached the limit - cursor_line = get_caret_line() - cursor_column = get_caret_column() diff --git a/quiz/player_name_field.gd.uid b/quiz/player_name_field.gd.uid deleted file mode 100644 index ce8c6a8..0000000 --- a/quiz/player_name_field.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cgakje8gb37tf diff --git a/quiz/player_row.gd b/quiz/player_row.gd index 47cd58d..95c335c 100644 --- a/quiz/player_row.gd +++ b/quiz/player_row.gd @@ -1,5 +1,7 @@ class_name PlayerRow -extends Control +extends PanelContainer +## One player in the player list: their name, points and character, and buttons for +## giving and taking points. Clicking the character picks another one. signal change_character_clicked signal player_removed @@ -12,6 +14,8 @@ var player_object: PlayerObject var list_index: int @onready var player_name_field: Label = %Name +@onready var score_label: Label = %Score +@onready var character_frame: PanelContainer = %CharacterFrame @onready var add_button: Button = %AddPoint @onready var minus_button: Button = %RemovePoint @onready var character: TextureButton = %Character @@ -25,12 +29,20 @@ func _ready() -> void: minus_button.set_shortcut(create_button_shortcut(list_index, true)) character.pressed.connect(change_character) remove_player.pressed.connect(func() -> void: player_removed.emit()) + character.mouse_entered.connect(_set_character_hovered.bind(true)) + character.mouse_exited.connect(_set_character_hovered.bind(false)) + # Rows take turns being lighter and darker, like the other lists + theme_type_variation = &"ListRowOdd" if list_index % 2 == 1 else &"ListRowEven" + player_name_field.text = player_object.player_name + player_name_field.tooltip_text = player_object.player_name + set_editing(Settings.edit_players) update_score() set_player_character() -func _process(delta: float) -> void: - remove_player.visible = Settings.edit_players +## Shows the button that removes the player while the player list is being edited. +func set_editing(editing: bool) -> void: + remove_player.visible = editing func create_button_shortcut(index: int, ctrl_pressed: bool) -> Shortcut: @@ -64,15 +76,13 @@ func new_character_selected(character_texture: Texture, character_name: String) func set_player_character() -> void: - character.custom_minimum_size = Vector2(80, 40) - character.ignore_texture_size = true - character.stretch_mode = TextureButton.STRETCH_KEEP_ASPECT_CENTERED character.texture_normal = player_object.character func update_score() -> void: - if OS.has_feature("debug"): - player_name_field.text = "%d %s: %d" % [list_index + 1, player_object.player_name, - player_object.player_score] - else: - player_name_field.text = player_object.player_name + ": " + str(player_object.player_score) + score_label.text = str(player_object.player_score) + + +func _set_character_hovered(hovered: bool) -> void: + character_frame.theme_type_variation = &"PlayerCharacterHover" if hovered \ + else &"PlayerCharacter" diff --git a/quiz/players_panel.gd b/quiz/players_panel.gd index f542f78..3f0b38a 100644 --- a/quiz/players_panel.gd +++ b/quiz/players_panel.gd @@ -21,35 +21,52 @@ var _player_row: PackedScene = preload("res://quiz/PlayerRow.tscn") @onready var add_players_button: TextureButton = %AddPlayersButton @onready var add_player_container: HBoxContainer = %AddPlayerContainer @onready var add_player_button: Button = %AddPlayerButton -@onready var new_player_name_field: PlayerNameField = %PlayerNameField +@onready var add_player_hint: Label = %AddPlayerHint +@onready var new_player_name_field: LineEdit = %PlayerNameField @onready var players_list_container: VBoxContainer = %PlayersListVBoxContainer func _ready() -> void: add_players_button.pressed.connect(add_players) add_player_button.pressed.connect(add_player) - new_player_name_field.enter_key_pressed.connect(add_player) + new_player_name_field.text_submitted.connect(func(_text: String) -> void: add_player()) ## Shows or hides the row for adding players, and the buttons for removing them. func add_players() -> void: GameLog.debug("add_players") Settings.edit_players = !Settings.edit_players - add_player_container.visible = !add_player_container.visible - new_player_name_field.grab_focus() + add_player_container.visible = Settings.edit_players + for row: PlayerRow in players_list_container.get_children(): + row.set_editing(Settings.edit_players) + _update_add_row() + if Settings.edit_players: + new_player_name_field.grab_focus() -## Adds a player with the name in the name field, unless it is empty or there are -## already as many players as there can be. +## Adds a player with the name in the name field. Blank names, names another player +## already has, and players beyond [constant Settings.MAX_NUMBER_OF_PLAYERS] are not +## added. func add_player() -> void: GameLog.debug("add_player") - if new_player_name_field.text != "" \ - && Settings.player_array.size() < Settings.MAX_NUMBER_OF_PLAYERS: - var new_player_object: PlayerObject = PlayerObject.new(new_player_name_field.text) - new_player_name_field.text = "" - Settings.player_array.append(new_player_object) - player_added.emit(new_player_object) - reload() + var player_name: String = new_player_name_field.text.strip_edges() + if !can_add(player_name): + return + var new_player_object: PlayerObject = PlayerObject.new(player_name) + new_player_name_field.text = "" + Settings.player_array.append(new_player_object) + player_added.emit(new_player_object) + reload() + + +## Whether a player called [param player_name] can be added. +func can_add(player_name: String) -> bool: + if player_name.is_empty() || Settings.player_array.size() >= Settings.MAX_NUMBER_OF_PLAYERS: + return false + for player: PlayerObject in Settings.player_array: + if player.player_name.to_lower() == player_name.to_lower(): + return false + return true ## Shows the players in [code]Settings.player_array[/code] again, e.g. after their @@ -71,6 +88,16 @@ func reload() -> void: players_list_container.add_child(new_player) counter += 1 + _update_add_row() + + +# A full list can't take more players, so the name field gives way to a note saying so +func _update_add_row() -> void: + var full: bool = Settings.player_array.size() >= Settings.MAX_NUMBER_OF_PLAYERS + add_player_hint.text = "Up to %d players" % Settings.MAX_NUMBER_OF_PLAYERS + add_player_hint.visible = full + new_player_name_field.visible = !full + add_player_button.visible = !full func _on_change_character_clicked(row: PlayerRow, player_name: String) -> void: diff --git a/quiz/song_controls.gd b/quiz/song_controls.gd index 7153bd7..999e4c9 100644 --- a/quiz/song_controls.gd +++ b/quiz/song_controls.gd @@ -8,7 +8,7 @@ signal next_pressed ## "Show winner". signal show_winner_pressed -const NEXT_TEXT: String = "Randomize new track" +const NEXT_TEXT: String = "Next song" const SHOW_WINNER_TEXT: String = "Show winner" ## True while Next reads "Show winner", after the last song of a prepared quiz. diff --git a/tests/data/layout_baseline.json b/tests/data/layout_baseline.json index fb4518f..c0a9fbc 100644 --- a/tests/data/layout_baseline.json +++ b/tests/data/layout_baseline.json @@ -1172,71 +1172,71 @@ }, "Quiz/PlayersPanel/VBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, - 401.0 + 1224.0, + 580.0, + 625.0, + 389.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1224.0, + 624.0, + 625.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerButton": { "rect": [ - 1617.0, - 620.0, - 39.0, - 40.0 + 1623.0, + 624.0, + 55.0, + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel": { + "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerHint": { "rect": [ - 1216.0, - 620.0, - 196.0, - 40.0 + 1224.0, + 624.0, + 131.0, + 26.0 ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel2": { - "rect": [ - 1660.0, - 620.0, - 197.0, - 40.0 - ], - "visible": true + "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/PlayerNameField": { "rect": [ - 1416.0, - 620.0, - 197.0, - 40.0 + 1395.0, + 624.0, + 220.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, + 1224.0, + 580.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/AddPlayersButton": { "rect": [ - 1821.0, - 576.0, + 1813.0, + 582.0, + 36.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/HeaderBalance": { + "rect": [ + 1224.0, + 580.0, 36.0, 40.0 ], @@ -1244,28 +1244,28 @@ }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/Label": { "rect": [ - 1216.0, - 576.0, - 601.0, + 1264.0, + 580.0, + 545.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer": { "rect": [ - 1216.0, + 1224.0, 664.0, - 641.0, - 313.0 + 625.0, + 305.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer": { "rect": [ - 1216.0, + 1224.0, 664.0, - 641.0, - 313.0 + 625.0, + 305.0 ], "visible": true }, @@ -1514,73 +1514,73 @@ }, "Quiz/QuizToolbar": { "rect": [ - 1360.0, + 1216.0, 64.0, - 495.0, - 31.0 + 640.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPlaylistButton": { "rect": [ - 1488.0, + 1478.0, 64.0, - 111.0, - 31.0 + 127.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPointsButton": { "rect": [ - 1616.0, + 1617.0, 64.0, - 111.0, - 31.0 + 120.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SearchButton": { "rect": [ - 1360.0, + 1389.0, 64.0, - 111.0, - 31.0 + 77.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SoundTestButton": { "rect": [ - 1744.0, + 1749.0, 64.0, - 111.0, - 31.0 + 107.0, + 36.0 ], "visible": true }, "Quiz/SongControls": { "rect": [ - 65.0, - 944.0, - 303.0, - 31.0 + 64.0, + 940.0, + 640.0, + 36.0 ], "visible": true }, "Quiz/SongControls/NextButton": { "rect": [ - 193.0, - 944.0, - 175.0, - 31.0 + 203.0, + 940.0, + 102.0, + 36.0 ], "visible": true }, "Quiz/SongControls/ShowAnswerButton": { "rect": [ - 65.0, - 944.0, - 111.0, - 31.0 + 64.0, + 940.0, + 127.0, + 36.0 ], "visible": true }, @@ -2164,7 +2164,7 @@ "rect": [ 720.0, 382.0, - 183.0, + 199.0, 31.0 ], "visible": false @@ -2182,7 +2182,7 @@ "rect": [ 720.0, 382.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -2200,7 +2200,7 @@ "rect": [ 720.0, 382.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -2209,7 +2209,7 @@ "rect": [ 720.0, 382.0, - 308.0, + 324.0, 31.0 ], "visible": false @@ -2218,7 +2218,7 @@ "rect": [ 720.0, 382.0, - 101.0, + 117.0, 31.0 ], "visible": false @@ -2245,7 +2245,7 @@ "rect": [ 720.0, 382.0, - 195.0, + 211.0, 31.0 ], "visible": false @@ -2254,7 +2254,7 @@ "rect": [ 720.0, 382.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -2281,7 +2281,7 @@ "rect": [ 720.0, 382.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -3280,7 +3280,7 @@ "rect": [ 32.0, 72.0, - 49.0, + 65.0, 31.0 ], "visible": false @@ -3361,7 +3361,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 31.0 ], "visible": false @@ -3627,12 +3627,57 @@ ], "visible": true }, - "TopBar/AboutButton": { + "TopBar/Buttons": { "rect": [ - 1722.0, - 8.0, - 70.0, - 40.0 + 1200.0, + 10.0, + 656.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/AboutButton": { + "rect": [ + 1726.0, + 10.0, + 71.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/QRButton": { + "rect": [ + 1809.0, + 10.0, + 47.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SettingsButton": { + "rect": [ + 1517.0, + 10.0, + 86.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/ShortcutsButton": { + "rect": [ + 1615.0, + 10.0, + 99.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SyncButton": { + "rect": [ + 1445.0, + 10.0, + 60.0, + 36.0 ], "visible": true }, @@ -3654,57 +3699,21 @@ ], "visible": false }, - "TopBar/QRButton": { - "rect": [ - 1802.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, "TopBar/QuizTab": { "rect": [ - 840.0, - 8.0, + 839.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SettingsButton": { - "rect": [ - 1538.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, - "TopBar/ShortcutsButton": { - "rect": [ - 1626.0, - 8.0, - 83.0, - 40.0 + 36.0 ], "visible": true }, "TopBar/StatisticsTab": { "rect": [ - 965.0, - 8.0, + 966.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SyncButton": { - "rect": [ - 1450.0, - 8.0, - 70.0, - 40.0 + 36.0 ], "visible": true }, @@ -4873,71 +4882,71 @@ }, "Quiz/PlayersPanel/VBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, - 401.0 + 1224.0, + 580.0, + 625.0, + 389.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1224.0, + 624.0, + 625.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerButton": { "rect": [ - 1617.0, - 620.0, - 39.0, - 40.0 + 1623.0, + 624.0, + 55.0, + 36.0 ], "visible": false }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel": { + "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerHint": { "rect": [ - 1216.0, - 620.0, - 196.0, - 40.0 - ], - "visible": false - }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel2": { - "rect": [ - 1660.0, - 620.0, - 197.0, - 40.0 + 1224.0, + 624.0, + 131.0, + 26.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/PlayerNameField": { "rect": [ - 1416.0, - 620.0, - 197.0, - 40.0 + 1395.0, + 624.0, + 220.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, + 1224.0, + 580.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/AddPlayersButton": { "rect": [ - 1821.0, - 576.0, + 1813.0, + 582.0, + 36.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/HeaderBalance": { + "rect": [ + 1224.0, + 580.0, 36.0, 40.0 ], @@ -4945,568 +4954,433 @@ }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/Label": { "rect": [ - 1216.0, - 576.0, - 601.0, + 1264.0, + 580.0, + 545.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1": { "rect": [ - 1216.0, - 664.0, - 641.0, + 1224.0, + 666.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer": { "rect": [ - 1216.0, - 664.0, - 641.0, - 40.0 + 1232.0, + 668.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 664.0, + 1753.0, + 668.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 664.0, - 80.0, - 40.0 + 1677.0, + 668.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 670.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Name": { "rect": [ - 1225.0, - 664.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 664.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 664.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 664.0, - 3.0, - 40.0 + 1232.0, + 673.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 664.0, - 40.0, - 40.0 + 1232.0, + 668.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 664.0, + 1801.0, + 668.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Score": { + "rect": [ + 1629.0, + 669.0, + 40.0, + 34.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2": { "rect": [ - 1216.0, + 1224.0, 708.0, - 641.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer": { "rect": [ - 1216.0, - 708.0, - 641.0, - 40.0 + 1232.0, + 710.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 708.0, + 1753.0, + 710.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 708.0, - 80.0, - 40.0 + 1677.0, + 710.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 712.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/Name": { "rect": [ - 1225.0, - 708.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 708.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 708.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 708.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 708.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 708.0, - 3.0, - 40.0 + 1232.0, + 715.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 708.0, - 40.0, - 40.0 + 1232.0, + 710.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 708.0, + 1801.0, + 710.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#2/HBoxContainer/Score": { + "rect": [ + 1629.0, + 711.0, + 40.0, + 34.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3": { "rect": [ - 1216.0, - 752.0, - 641.0, + 1224.0, + 750.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer": { "rect": [ - 1216.0, + 1232.0, 752.0, - 641.0, - 40.0 + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/AddPoint": { "rect": [ - 1732.0, + 1753.0, 752.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, + 1677.0, 752.0, - 80.0, - 40.0 + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 754.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/Name": { "rect": [ - 1225.0, - 752.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 752.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 752.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 752.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 752.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 752.0, - 3.0, - 40.0 + 1232.0, + 757.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, + 1232.0, 752.0, - 40.0, - 40.0 + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, + 1801.0, 752.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#3/HBoxContainer/Score": { + "rect": [ + 1629.0, + 753.0, + 40.0, + 34.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4": { "rect": [ - 1216.0, - 796.0, - 641.0, + 1224.0, + 792.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer": { "rect": [ - 1216.0, - 796.0, - 641.0, - 40.0 + 1232.0, + 794.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 796.0, + 1753.0, + 794.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, + 1677.0, + 794.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, 796.0, - 80.0, - 40.0 + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/Name": { "rect": [ - 1225.0, - 796.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 796.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 796.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 796.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 796.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 796.0, - 3.0, - 40.0 + 1232.0, + 799.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 796.0, - 40.0, - 40.0 + 1232.0, + 794.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 796.0, + 1801.0, + 794.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#4/HBoxContainer/Score": { + "rect": [ + 1629.0, + 795.0, + 40.0, + 34.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow": { "rect": [ - 1216.0, - 620.0, - 641.0, + 1224.0, + 624.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1232.0, + 626.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 620.0, + 1753.0, + 626.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 620.0, - 80.0, - 40.0 + 1677.0, + 626.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 628.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Name": { "rect": [ - 1225.0, - 620.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 620.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 620.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 620.0, - 3.0, - 40.0 + 1232.0, + 631.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 620.0, - 40.0, - 40.0 + 1232.0, + 626.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 620.0, + 1801.0, + 626.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Score": { + "rect": [ + 1629.0, + 627.0, + 40.0, + 34.0 ], "visible": true }, @@ -5755,73 +5629,73 @@ }, "Quiz/QuizToolbar": { "rect": [ - 1360.0, + 1216.0, 64.0, - 495.0, - 31.0 + 640.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPlaylistButton": { "rect": [ - 1488.0, + 1478.0, 64.0, - 111.0, - 31.0 + 127.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPointsButton": { "rect": [ - 1616.0, + 1617.0, 64.0, - 111.0, - 31.0 + 120.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SearchButton": { "rect": [ - 1360.0, + 1389.0, 64.0, - 111.0, - 31.0 + 77.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SoundTestButton": { "rect": [ - 1744.0, + 1749.0, 64.0, - 111.0, - 31.0 + 107.0, + 36.0 ], "visible": true }, "Quiz/SongControls": { "rect": [ - 65.0, - 944.0, - 303.0, - 31.0 + 64.0, + 940.0, + 640.0, + 36.0 ], "visible": true }, "Quiz/SongControls/NextButton": { "rect": [ - 193.0, - 944.0, - 175.0, - 31.0 + 203.0, + 940.0, + 102.0, + 36.0 ], "visible": true }, "Quiz/SongControls/ShowAnswerButton": { "rect": [ - 65.0, - 944.0, - 111.0, - 31.0 + 64.0, + 940.0, + 127.0, + 36.0 ], "visible": true }, @@ -6459,16 +6333,16 @@ "rect": [ 820.0, 495.0, - 298.0, + 282.0, 23.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ - 1122.0, + 1106.0, 491.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -6486,7 +6360,7 @@ "rect": [ 720.0, 491.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -6502,9 +6376,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ - 1099.0, + 1083.0, 666.0, - 101.0, + 117.0, 31.0 ], "visible": false @@ -6513,7 +6387,7 @@ "rect": [ 720.0, 666.0, - 375.0, + 359.0, 31.0 ], "visible": false @@ -6538,9 +6412,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ - 1122.0, + 1106.0, 456.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -6549,7 +6423,7 @@ "rect": [ 832.0, 460.0, - 286.0, + 270.0, 23.0 ], "visible": false @@ -6567,7 +6441,7 @@ "rect": [ 720.0, 456.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -10021,25 +9895,25 @@ }, "StatisticsView/Toolbar/ClearButton": { "rect": [ - 804.0, + 805.0, 72.0, - 49.0, + 65.0, 40.0 ], "visible": false }, "StatisticsView/Toolbar/CountLabel": { "rect": [ - 865.0, + 882.0, 80.0, - 581.0, + 564.0, 23.0 ], "visible": false }, "StatisticsView/Toolbar/ModeSeparator": { "rect": [ - 296.0, + 297.0, 72.0, 4.0, 40.0 @@ -10048,7 +9922,7 @@ }, "StatisticsView/Toolbar/SearchField": { "rect": [ - 312.0, + 313.0, 72.0, 480.0, 40.0 @@ -10075,7 +9949,7 @@ }, "StatisticsView/Toolbar/SongsModeButton": { "rect": [ - 164.0, + 165.0, 72.0, 120.0, 40.0 @@ -10104,7 +9978,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 40.0 ], "visible": false @@ -10460,12 +10334,57 @@ ], "visible": true }, - "TopBar/AboutButton": { + "TopBar/Buttons": { "rect": [ - 1722.0, - 8.0, - 70.0, - 40.0 + 1200.0, + 10.0, + 656.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/AboutButton": { + "rect": [ + 1726.0, + 10.0, + 71.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/QRButton": { + "rect": [ + 1809.0, + 10.0, + 47.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SettingsButton": { + "rect": [ + 1517.0, + 10.0, + 86.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/ShortcutsButton": { + "rect": [ + 1615.0, + 10.0, + 99.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SyncButton": { + "rect": [ + 1445.0, + 10.0, + 60.0, + 36.0 ], "visible": true }, @@ -10487,57 +10406,21 @@ ], "visible": true }, - "TopBar/QRButton": { - "rect": [ - 1802.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, "TopBar/QuizTab": { "rect": [ - 840.0, - 8.0, + 839.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SettingsButton": { - "rect": [ - 1538.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, - "TopBar/ShortcutsButton": { - "rect": [ - 1626.0, - 8.0, - 83.0, - 40.0 + 36.0 ], "visible": true }, "TopBar/StatisticsTab": { "rect": [ - 965.0, - 8.0, + 966.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SyncButton": { - "rect": [ - 1450.0, - 8.0, - 70.0, - 40.0 + 36.0 ], "visible": true }, @@ -11742,71 +11625,71 @@ }, "Quiz/PlayersPanel/VBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, - 401.0 + 1224.0, + 580.0, + 625.0, + 389.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1224.0, + 624.0, + 625.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerButton": { "rect": [ - 1617.0, - 620.0, - 39.0, - 40.0 + 1623.0, + 624.0, + 55.0, + 36.0 ], "visible": false }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel": { + "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerHint": { "rect": [ - 1216.0, - 620.0, - 196.0, - 40.0 - ], - "visible": false - }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel2": { - "rect": [ - 1660.0, - 620.0, - 197.0, - 40.0 + 1224.0, + 624.0, + 131.0, + 26.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/PlayerNameField": { "rect": [ - 1416.0, - 620.0, - 197.0, - 40.0 + 1395.0, + 624.0, + 220.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, + 1224.0, + 580.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/AddPlayersButton": { "rect": [ - 1821.0, - 576.0, + 1813.0, + 582.0, + 36.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/HeaderBalance": { + "rect": [ + 1224.0, + 580.0, 36.0, 40.0 ], @@ -11814,244 +11697,190 @@ }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/Label": { "rect": [ - 1216.0, - 576.0, - 601.0, + 1264.0, + 580.0, + 545.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1": { "rect": [ - 1216.0, - 664.0, - 641.0, + 1224.0, + 666.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer": { "rect": [ - 1216.0, - 664.0, - 641.0, - 40.0 + 1232.0, + 668.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 664.0, + 1753.0, + 668.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 664.0, - 80.0, - 40.0 + 1677.0, + 668.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 670.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Name": { "rect": [ - 1225.0, - 664.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 664.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 664.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 664.0, - 3.0, - 40.0 + 1232.0, + 673.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 664.0, - 40.0, - 40.0 + 1232.0, + 668.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 664.0, + 1801.0, + 668.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Score": { + "rect": [ + 1629.0, + 669.0, + 40.0, + 34.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow": { "rect": [ - 1216.0, - 620.0, - 641.0, + 1224.0, + 624.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1232.0, + 626.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 620.0, + 1753.0, + 626.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 620.0, - 80.0, - 40.0 + 1677.0, + 626.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 628.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Name": { "rect": [ - 1225.0, - 620.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 620.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 620.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 620.0, - 3.0, - 40.0 + 1232.0, + 631.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 620.0, - 40.0, - 40.0 + 1232.0, + 626.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 620.0, + 1801.0, + 626.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Score": { + "rect": [ + 1629.0, + 627.0, + 40.0, + 34.0 ], "visible": true }, @@ -12300,73 +12129,73 @@ }, "Quiz/QuizToolbar": { "rect": [ - 1360.0, + 1216.0, 64.0, - 495.0, - 31.0 + 640.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPlaylistButton": { "rect": [ - 1488.0, + 1478.0, 64.0, - 111.0, - 31.0 + 127.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPointsButton": { "rect": [ - 1616.0, + 1617.0, 64.0, - 111.0, - 31.0 + 120.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SearchButton": { "rect": [ - 1360.0, + 1389.0, 64.0, - 111.0, - 31.0 + 77.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SoundTestButton": { "rect": [ - 1744.0, + 1749.0, 64.0, - 111.0, - 31.0 + 107.0, + 36.0 ], "visible": true }, "Quiz/SongControls": { "rect": [ - 65.0, - 944.0, - 303.0, - 31.0 + 64.0, + 940.0, + 640.0, + 36.0 ], "visible": true }, "Quiz/SongControls/NextButton": { "rect": [ - 193.0, - 944.0, - 175.0, - 31.0 + 203.0, + 940.0, + 102.0, + 36.0 ], "visible": true }, "Quiz/SongControls/ShowAnswerButton": { "rect": [ - 65.0, - 944.0, - 111.0, - 31.0 + 64.0, + 940.0, + 127.0, + 36.0 ], "visible": true }, @@ -12950,7 +12779,7 @@ "rect": [ 720.0, 382.0, - 183.0, + 199.0, 31.0 ], "visible": false @@ -12968,7 +12797,7 @@ "rect": [ 720.0, 382.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -12986,7 +12815,7 @@ "rect": [ 720.0, 382.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -12995,7 +12824,7 @@ "rect": [ 720.0, 382.0, - 308.0, + 324.0, 31.0 ], "visible": false @@ -13004,7 +12833,7 @@ "rect": [ 720.0, 382.0, - 101.0, + 117.0, 31.0 ], "visible": false @@ -13031,7 +12860,7 @@ "rect": [ 720.0, 382.0, - 195.0, + 211.0, 31.0 ], "visible": false @@ -13040,7 +12869,7 @@ "rect": [ 720.0, 382.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -13067,7 +12896,7 @@ "rect": [ 720.0, 382.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -14066,7 +13895,7 @@ "rect": [ 32.0, 72.0, - 49.0, + 65.0, 31.0 ], "visible": false @@ -14147,7 +13976,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 31.0 ], "visible": false @@ -14413,12 +14242,57 @@ ], "visible": true }, - "TopBar/AboutButton": { + "TopBar/Buttons": { "rect": [ - 1722.0, - 8.0, - 70.0, - 40.0 + 1200.0, + 10.0, + 656.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/AboutButton": { + "rect": [ + 1726.0, + 10.0, + 71.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/QRButton": { + "rect": [ + 1809.0, + 10.0, + 47.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SettingsButton": { + "rect": [ + 1517.0, + 10.0, + 86.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/ShortcutsButton": { + "rect": [ + 1615.0, + 10.0, + 99.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SyncButton": { + "rect": [ + 1445.0, + 10.0, + 60.0, + 36.0 ], "visible": true }, @@ -14440,57 +14314,21 @@ ], "visible": false }, - "TopBar/QRButton": { - "rect": [ - 1802.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, "TopBar/QuizTab": { "rect": [ - 840.0, - 8.0, + 839.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SettingsButton": { - "rect": [ - 1538.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, - "TopBar/ShortcutsButton": { - "rect": [ - 1626.0, - 8.0, - 83.0, - 40.0 + 36.0 ], "visible": true }, "TopBar/StatisticsTab": { "rect": [ - 965.0, - 8.0, + 966.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SyncButton": { - "rect": [ - 1450.0, - 8.0, - 70.0, - 40.0 + 36.0 ], "visible": true }, @@ -15812,71 +15650,71 @@ }, "Quiz/PlayersPanel/VBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, - 401.0 + 1224.0, + 580.0, + 625.0, + 389.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1224.0, + 624.0, + 625.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerButton": { "rect": [ - 1617.0, - 620.0, - 39.0, - 40.0 + 1623.0, + 624.0, + 55.0, + 36.0 ], "visible": false }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel": { + "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerHint": { "rect": [ - 1216.0, - 620.0, - 196.0, - 40.0 - ], - "visible": false - }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel2": { - "rect": [ - 1660.0, - 620.0, - 197.0, - 40.0 + 1224.0, + 624.0, + 131.0, + 26.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/PlayerNameField": { "rect": [ - 1416.0, - 620.0, - 197.0, - 40.0 + 1395.0, + 624.0, + 220.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, + 1224.0, + 580.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/AddPlayersButton": { "rect": [ - 1821.0, - 576.0, + 1813.0, + 582.0, + 36.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/HeaderBalance": { + "rect": [ + 1224.0, + 580.0, 36.0, 40.0 ], @@ -15884,244 +15722,190 @@ }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/Label": { "rect": [ - 1216.0, - 576.0, - 601.0, + 1264.0, + 580.0, + 545.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1": { "rect": [ - 1216.0, - 664.0, - 641.0, + 1224.0, + 666.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer": { "rect": [ - 1216.0, - 664.0, - 641.0, - 40.0 + 1232.0, + 668.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 664.0, + 1753.0, + 668.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 664.0, - 80.0, - 40.0 + 1677.0, + 668.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 670.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Name": { "rect": [ - 1225.0, - 664.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 664.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 664.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 664.0, - 3.0, - 40.0 + 1232.0, + 673.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 664.0, - 40.0, - 40.0 + 1232.0, + 668.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 664.0, + 1801.0, + 668.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Score": { + "rect": [ + 1629.0, + 669.0, + 40.0, + 34.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow": { "rect": [ - 1216.0, - 620.0, - 641.0, + 1224.0, + 624.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1232.0, + 626.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 620.0, + 1753.0, + 626.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 620.0, - 80.0, - 40.0 + 1677.0, + 626.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 628.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Name": { "rect": [ - 1225.0, - 620.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 620.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 620.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 620.0, - 3.0, - 40.0 + 1232.0, + 631.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 620.0, - 40.0, - 40.0 + 1232.0, + 626.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 620.0, + 1801.0, + 626.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Score": { + "rect": [ + 1629.0, + 627.0, + 40.0, + 34.0 ], "visible": true }, @@ -16370,73 +16154,73 @@ }, "Quiz/QuizToolbar": { "rect": [ - 1360.0, + 1216.0, 64.0, - 495.0, - 31.0 + 640.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPlaylistButton": { "rect": [ - 1488.0, + 1478.0, 64.0, - 111.0, - 31.0 + 127.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPointsButton": { "rect": [ - 1616.0, + 1617.0, 64.0, - 111.0, - 31.0 + 120.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SearchButton": { "rect": [ - 1360.0, + 1389.0, 64.0, - 111.0, - 31.0 + 77.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SoundTestButton": { "rect": [ - 1744.0, + 1749.0, 64.0, - 111.0, - 31.0 + 107.0, + 36.0 ], "visible": true }, "Quiz/SongControls": { "rect": [ - 65.0, - 944.0, - 303.0, - 31.0 + 64.0, + 940.0, + 640.0, + 36.0 ], "visible": true }, "Quiz/SongControls/NextButton": { "rect": [ - 193.0, - 944.0, - 175.0, - 31.0 + 203.0, + 940.0, + 102.0, + 36.0 ], "visible": true }, "Quiz/SongControls/ShowAnswerButton": { "rect": [ - 65.0, - 944.0, - 111.0, - 31.0 + 64.0, + 940.0, + 127.0, + 36.0 ], "visible": true }, @@ -17020,7 +16804,7 @@ "rect": [ 720.0, 382.0, - 183.0, + 199.0, 31.0 ], "visible": false @@ -17038,7 +16822,7 @@ "rect": [ 720.0, 382.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -17056,7 +16840,7 @@ "rect": [ 720.0, 382.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -17065,7 +16849,7 @@ "rect": [ 720.0, 382.0, - 308.0, + 324.0, 31.0 ], "visible": false @@ -17074,7 +16858,7 @@ "rect": [ 720.0, 382.0, - 101.0, + 117.0, 31.0 ], "visible": false @@ -17101,7 +16885,7 @@ "rect": [ 720.0, 382.0, - 195.0, + 211.0, 31.0 ], "visible": false @@ -17110,7 +16894,7 @@ "rect": [ 720.0, 382.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -17137,7 +16921,7 @@ "rect": [ 720.0, 382.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -18136,7 +17920,7 @@ "rect": [ 32.0, 72.0, - 49.0, + 65.0, 31.0 ], "visible": false @@ -18217,7 +18001,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 31.0 ], "visible": false @@ -18483,12 +18267,57 @@ ], "visible": true }, - "TopBar/AboutButton": { + "TopBar/Buttons": { "rect": [ - 1722.0, - 8.0, - 70.0, - 40.0 + 1200.0, + 10.0, + 656.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/AboutButton": { + "rect": [ + 1726.0, + 10.0, + 71.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/QRButton": { + "rect": [ + 1809.0, + 10.0, + 47.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SettingsButton": { + "rect": [ + 1517.0, + 10.0, + 86.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/ShortcutsButton": { + "rect": [ + 1615.0, + 10.0, + 99.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SyncButton": { + "rect": [ + 1445.0, + 10.0, + 60.0, + 36.0 ], "visible": true }, @@ -18510,57 +18339,21 @@ ], "visible": false }, - "TopBar/QRButton": { - "rect": [ - 1802.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, "TopBar/QuizTab": { "rect": [ - 840.0, - 8.0, + 839.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SettingsButton": { - "rect": [ - 1538.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, - "TopBar/ShortcutsButton": { - "rect": [ - 1626.0, - 8.0, - 83.0, - 40.0 + 36.0 ], "visible": true }, "TopBar/StatisticsTab": { "rect": [ - 965.0, - 8.0, + 966.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SyncButton": { - "rect": [ - 1450.0, - 8.0, - 70.0, - 40.0 + 36.0 ], "visible": true }, @@ -20285,16 +20078,16 @@ "rect": [ 820.0, 495.0, - 298.0, + 282.0, 23.0 ], "visible": true }, "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ - 1122.0, + 1106.0, 491.0, - 78.0, + 94.0, 31.0 ], "visible": true @@ -20312,7 +20105,7 @@ "rect": [ 720.0, 491.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -20328,9 +20121,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ - 1099.0, + 1083.0, 666.0, - 101.0, + 117.0, 31.0 ], "visible": true @@ -20339,7 +20132,7 @@ "rect": [ 720.0, 666.0, - 375.0, + 359.0, 31.0 ], "visible": true @@ -20364,9 +20157,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ - 1122.0, + 1106.0, 456.0, - 78.0, + 94.0, 31.0 ], "visible": true @@ -20375,7 +20168,7 @@ "rect": [ 832.0, 460.0, - 286.0, + 270.0, 23.0 ], "visible": true @@ -20393,7 +20186,7 @@ "rect": [ 720.0, 456.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -20602,16 +20395,16 @@ "rect": [ 820.0, 513.0, - 298.0, + 282.0, 23.0 ], "visible": true }, "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ - 1122.0, + 1106.0, 509.0, - 78.0, + 94.0, 31.0 ], "visible": true @@ -20629,7 +20422,7 @@ "rect": [ 720.0, 509.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -20645,9 +20438,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ - 1099.0, + 1083.0, 684.0, - 101.0, + 117.0, 31.0 ], "visible": true @@ -20656,7 +20449,7 @@ "rect": [ 720.0, 684.0, - 375.0, + 359.0, 31.0 ], "visible": true @@ -20681,9 +20474,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ - 1028.0, + 996.0, 439.0, - 78.0, + 94.0, 31.0 ], "visible": true @@ -20692,7 +20485,7 @@ "rect": [ 832.0, 443.0, - 192.0, + 160.0, 23.0 ], "visible": true @@ -20708,9 +20501,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/UseServerButton": { "rect": [ - 1110.0, + 1094.0, 439.0, - 90.0, + 106.0, 31.0 ], "visible": true @@ -24070,71 +23863,71 @@ }, "Quiz/PlayersPanel/VBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, - 401.0 + 1224.0, + 580.0, + 625.0, + 389.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer": { "rect": [ - 1216.0, - 576.0, - 60.0, - 40.0 + 1224.0, + 580.0, + 283.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerButton": { "rect": [ - 1216.0, - 576.0, - 39.0, - 40.0 + 1224.0, + 580.0, + 55.0, + 31.0 ], "visible": false }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel": { + "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerHint": { "rect": [ - 1216.0, - 576.0, - 0.0, - 0.0 - ], - "visible": false - }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel2": { - "rect": [ - 1216.0, - 576.0, - 0.0, - 40.0 + 1224.0, + 580.0, + 131.0, + 26.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/PlayerNameField": { "rect": [ - 1216.0, - 576.0, - 8.0, - 40.0 + 1224.0, + 580.0, + 220.0, + 31.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, + 1224.0, + 580.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/AddPlayersButton": { "rect": [ - 1821.0, - 576.0, + 1813.0, + 582.0, + 36.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/HeaderBalance": { + "rect": [ + 1224.0, + 580.0, 36.0, 40.0 ], @@ -24142,28 +23935,28 @@ }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/Label": { "rect": [ - 1216.0, - 576.0, - 601.0, + 1264.0, + 580.0, + 545.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, @@ -24412,73 +24205,73 @@ }, "Quiz/QuizToolbar": { "rect": [ - 1360.0, + 1216.0, 64.0, - 495.0, - 31.0 + 640.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPlaylistButton": { "rect": [ - 1488.0, + 1478.0, 64.0, - 111.0, - 31.0 + 127.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPointsButton": { "rect": [ - 1616.0, + 1617.0, 64.0, - 111.0, - 31.0 + 120.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SearchButton": { "rect": [ - 1360.0, + 1389.0, 64.0, - 111.0, - 31.0 + 77.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SoundTestButton": { "rect": [ - 1744.0, + 1749.0, 64.0, - 111.0, - 31.0 + 107.0, + 36.0 ], "visible": true }, "Quiz/SongControls": { "rect": [ - 65.0, - 944.0, - 303.0, - 31.0 + 64.0, + 940.0, + 640.0, + 36.0 ], "visible": true }, "Quiz/SongControls/NextButton": { "rect": [ - 193.0, - 944.0, - 175.0, - 31.0 + 203.0, + 940.0, + 102.0, + 36.0 ], "visible": true }, "Quiz/SongControls/ShowAnswerButton": { "rect": [ - 65.0, - 944.0, - 111.0, - 31.0 + 64.0, + 940.0, + 127.0, + 36.0 ], "visible": true }, @@ -25062,7 +24855,7 @@ "rect": [ 720.0, 382.0, - 183.0, + 199.0, 31.0 ], "visible": false @@ -25080,7 +24873,7 @@ "rect": [ 720.0, 382.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -25098,7 +24891,7 @@ "rect": [ 720.0, 382.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -25107,7 +24900,7 @@ "rect": [ 720.0, 382.0, - 308.0, + 324.0, 31.0 ], "visible": false @@ -25116,7 +24909,7 @@ "rect": [ 720.0, 382.0, - 101.0, + 117.0, 31.0 ], "visible": false @@ -25143,7 +24936,7 @@ "rect": [ 720.0, 382.0, - 195.0, + 211.0, 31.0 ], "visible": false @@ -25152,7 +24945,7 @@ "rect": [ 720.0, 382.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -25179,7 +24972,7 @@ "rect": [ 720.0, 382.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -26178,7 +25971,7 @@ "rect": [ 32.0, 72.0, - 49.0, + 65.0, 31.0 ], "visible": false @@ -26259,7 +26052,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 31.0 ], "visible": false @@ -26525,12 +26318,57 @@ ], "visible": true }, - "TopBar/AboutButton": { + "TopBar/Buttons": { "rect": [ - 1722.0, - 8.0, - 70.0, - 40.0 + 1200.0, + 10.0, + 656.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/AboutButton": { + "rect": [ + 1726.0, + 10.0, + 71.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/QRButton": { + "rect": [ + 1809.0, + 10.0, + 47.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SettingsButton": { + "rect": [ + 1517.0, + 10.0, + 86.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/ShortcutsButton": { + "rect": [ + 1615.0, + 10.0, + 99.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SyncButton": { + "rect": [ + 1445.0, + 10.0, + 60.0, + 36.0 ], "visible": true }, @@ -26552,57 +26390,21 @@ ], "visible": false }, - "TopBar/QRButton": { - "rect": [ - 1802.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, "TopBar/QuizTab": { "rect": [ - 840.0, - 8.0, + 839.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SettingsButton": { - "rect": [ - 1538.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, - "TopBar/ShortcutsButton": { - "rect": [ - 1626.0, - 8.0, - 83.0, - 40.0 + 36.0 ], "visible": true }, "TopBar/StatisticsTab": { "rect": [ - 965.0, - 8.0, + 966.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SyncButton": { - "rect": [ - 1450.0, - 8.0, - 70.0, - 40.0 + 36.0 ], "visible": true }, @@ -27888,25 +27690,25 @@ }, "StatisticsView/Toolbar/ClearButton": { "rect": [ - 804.0, + 805.0, 72.0, - 49.0, + 65.0, 40.0 ], "visible": true }, "StatisticsView/Toolbar/CountLabel": { "rect": [ - 865.0, + 882.0, 80.0, - 581.0, + 564.0, 23.0 ], "visible": true }, "StatisticsView/Toolbar/ModeSeparator": { "rect": [ - 296.0, + 297.0, 72.0, 4.0, 40.0 @@ -27915,7 +27717,7 @@ }, "StatisticsView/Toolbar/SearchField": { "rect": [ - 312.0, + 313.0, 72.0, 480.0, 40.0 @@ -27942,7 +27744,7 @@ }, "StatisticsView/Toolbar/SongsModeButton": { "rect": [ - 164.0, + 165.0, 72.0, 120.0, 40.0 @@ -27971,7 +27773,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 40.0 ], "visible": true @@ -29231,25 +29033,25 @@ }, "StatisticsView/Toolbar/ClearButton": { "rect": [ - 804.0, + 805.0, 72.0, - 49.0, + 65.0, 40.0 ], "visible": true }, "StatisticsView/Toolbar/CountLabel": { "rect": [ - 865.0, + 882.0, 80.0, - 581.0, + 564.0, 23.0 ], "visible": true }, "StatisticsView/Toolbar/ModeSeparator": { "rect": [ - 296.0, + 297.0, 72.0, 4.0, 40.0 @@ -29258,7 +29060,7 @@ }, "StatisticsView/Toolbar/SearchField": { "rect": [ - 312.0, + 313.0, 72.0, 480.0, 40.0 @@ -29285,7 +29087,7 @@ }, "StatisticsView/Toolbar/SongsModeButton": { "rect": [ - 164.0, + 165.0, 72.0, 120.0, 40.0 @@ -29314,7 +29116,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 40.0 ], "visible": true @@ -30574,25 +30376,25 @@ }, "StatisticsView/Toolbar/ClearButton": { "rect": [ - 804.0, + 805.0, 72.0, - 49.0, + 65.0, 40.0 ], "visible": true }, "StatisticsView/Toolbar/CountLabel": { "rect": [ - 865.0, + 882.0, 80.0, - 581.0, + 564.0, 23.0 ], "visible": true }, "StatisticsView/Toolbar/ModeSeparator": { "rect": [ - 296.0, + 297.0, 72.0, 4.0, 40.0 @@ -30601,7 +30403,7 @@ }, "StatisticsView/Toolbar/SearchField": { "rect": [ - 312.0, + 313.0, 72.0, 480.0, 40.0 @@ -30628,7 +30430,7 @@ }, "StatisticsView/Toolbar/SongsModeButton": { "rect": [ - 164.0, + 165.0, 72.0, 120.0, 40.0 @@ -30657,7 +30459,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 40.0 ], "visible": true @@ -33222,25 +33024,25 @@ }, "StatisticsView/Toolbar/ClearButton": { "rect": [ - 804.0, + 805.0, 72.0, - 49.0, + 65.0, 40.0 ], "visible": true }, "StatisticsView/Toolbar/CountLabel": { "rect": [ - 865.0, + 882.0, 80.0, - 807.0, + 790.0, 23.0 ], "visible": true }, "StatisticsView/Toolbar/ModeSeparator": { "rect": [ - 296.0, + 297.0, 72.0, 4.0, 40.0 @@ -33249,7 +33051,7 @@ }, "StatisticsView/Toolbar/SearchField": { "rect": [ - 312.0, + 313.0, 72.0, 480.0, 40.0 @@ -33276,7 +33078,7 @@ }, "StatisticsView/Toolbar/SongsModeButton": { "rect": [ - 164.0, + 165.0, 72.0, 120.0, 40.0 @@ -33305,7 +33107,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 40.0 ], "visible": true @@ -35870,25 +35672,25 @@ }, "StatisticsView/Toolbar/ClearButton": { "rect": [ - 804.0, + 805.0, 72.0, - 49.0, + 65.0, 40.0 ], "visible": true }, "StatisticsView/Toolbar/CountLabel": { "rect": [ - 865.0, + 882.0, 80.0, - 807.0, + 790.0, 23.0 ], "visible": true }, "StatisticsView/Toolbar/ModeSeparator": { "rect": [ - 296.0, + 297.0, 72.0, 4.0, 40.0 @@ -35897,7 +35699,7 @@ }, "StatisticsView/Toolbar/SearchField": { "rect": [ - 312.0, + 313.0, 72.0, 480.0, 40.0 @@ -35924,7 +35726,7 @@ }, "StatisticsView/Toolbar/SongsModeButton": { "rect": [ - 164.0, + 165.0, 72.0, 120.0, 40.0 @@ -35953,7 +35755,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 40.0 ], "visible": true @@ -37249,71 +37051,71 @@ }, "Quiz/PlayersPanel/VBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, - 401.0 + 1224.0, + 580.0, + 625.0, + 389.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1224.0, + 624.0, + 625.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerButton": { "rect": [ - 1617.0, - 620.0, - 39.0, - 40.0 + 1623.0, + 624.0, + 55.0, + 36.0 ], "visible": false }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel": { + "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerHint": { "rect": [ - 1216.0, - 620.0, - 196.0, - 40.0 - ], - "visible": false - }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel2": { - "rect": [ - 1660.0, - 620.0, - 197.0, - 40.0 + 1224.0, + 624.0, + 131.0, + 26.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/PlayerNameField": { "rect": [ - 1416.0, - 620.0, - 197.0, - 40.0 + 1395.0, + 624.0, + 220.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, + 1224.0, + 580.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/AddPlayersButton": { "rect": [ - 1821.0, - 576.0, + 1813.0, + 582.0, + 36.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/HeaderBalance": { + "rect": [ + 1224.0, + 580.0, 36.0, 40.0 ], @@ -37321,244 +37123,190 @@ }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/Label": { "rect": [ - 1216.0, - 576.0, - 601.0, + 1264.0, + 580.0, + 545.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1": { "rect": [ - 1216.0, - 664.0, - 641.0, + 1224.0, + 666.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer": { "rect": [ - 1216.0, - 664.0, - 641.0, - 40.0 + 1232.0, + 668.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 664.0, + 1753.0, + 668.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 664.0, - 80.0, - 40.0 + 1677.0, + 668.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 670.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Name": { "rect": [ - 1225.0, - 664.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 664.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 664.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 664.0, - 3.0, - 40.0 + 1232.0, + 673.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 664.0, - 40.0, - 40.0 + 1232.0, + 668.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 664.0, + 1801.0, + 668.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Score": { + "rect": [ + 1629.0, + 669.0, + 40.0, + 34.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow": { "rect": [ - 1216.0, - 620.0, - 641.0, + 1224.0, + 624.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1232.0, + 626.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 620.0, + 1753.0, + 626.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 620.0, - 80.0, - 40.0 + 1677.0, + 626.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 628.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Name": { "rect": [ - 1225.0, - 620.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 620.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 620.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 620.0, - 3.0, - 40.0 + 1232.0, + 631.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 620.0, - 40.0, - 40.0 + 1232.0, + 626.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 620.0, + 1801.0, + 626.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Score": { + "rect": [ + 1629.0, + 627.0, + 40.0, + 34.0 ], "visible": true }, @@ -37807,73 +37555,73 @@ }, "Quiz/QuizToolbar": { "rect": [ - 1360.0, + 1216.0, 64.0, - 495.0, - 31.0 + 640.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPlaylistButton": { "rect": [ - 1488.0, + 1478.0, 64.0, - 111.0, - 31.0 + 127.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPointsButton": { "rect": [ - 1616.0, + 1617.0, 64.0, - 111.0, - 31.0 + 120.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SearchButton": { "rect": [ - 1360.0, + 1389.0, 64.0, - 111.0, - 31.0 + 77.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SoundTestButton": { "rect": [ - 1744.0, + 1749.0, 64.0, - 111.0, - 31.0 + 107.0, + 36.0 ], "visible": true }, "Quiz/SongControls": { "rect": [ - 65.0, - 944.0, - 303.0, - 31.0 + 64.0, + 940.0, + 640.0, + 36.0 ], "visible": true }, "Quiz/SongControls/NextButton": { "rect": [ - 193.0, - 944.0, - 175.0, - 31.0 + 203.0, + 940.0, + 102.0, + 36.0 ], "visible": true }, "Quiz/SongControls/ShowAnswerButton": { "rect": [ - 65.0, - 944.0, - 111.0, - 31.0 + 64.0, + 940.0, + 127.0, + 36.0 ], "visible": true }, @@ -38529,16 +38277,16 @@ "rect": [ 820.0, 495.0, - 298.0, + 282.0, 23.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ - 1122.0, + 1106.0, 491.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -38556,7 +38304,7 @@ "rect": [ 720.0, 491.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -38572,9 +38320,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ - 1099.0, + 1083.0, 666.0, - 101.0, + 117.0, 31.0 ], "visible": false @@ -38583,7 +38331,7 @@ "rect": [ 720.0, 666.0, - 375.0, + 359.0, 31.0 ], "visible": false @@ -38608,9 +38356,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ - 1122.0, + 1106.0, 456.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -38619,7 +38367,7 @@ "rect": [ 832.0, 460.0, - 286.0, + 270.0, 23.0 ], "visible": false @@ -38637,7 +38385,7 @@ "rect": [ 720.0, 456.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -39636,7 +39384,7 @@ "rect": [ 32.0, 72.0, - 49.0, + 65.0, 31.0 ], "visible": false @@ -39717,7 +39465,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 31.0 ], "visible": false @@ -39983,12 +39731,57 @@ ], "visible": true }, - "TopBar/AboutButton": { + "TopBar/Buttons": { "rect": [ - 1722.0, - 8.0, - 70.0, - 40.0 + 1200.0, + 10.0, + 656.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/AboutButton": { + "rect": [ + 1726.0, + 10.0, + 71.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/QRButton": { + "rect": [ + 1809.0, + 10.0, + 47.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SettingsButton": { + "rect": [ + 1517.0, + 10.0, + 86.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/ShortcutsButton": { + "rect": [ + 1615.0, + 10.0, + 99.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SyncButton": { + "rect": [ + 1445.0, + 10.0, + 60.0, + 36.0 ], "visible": true }, @@ -40010,57 +39803,21 @@ ], "visible": false }, - "TopBar/QRButton": { - "rect": [ - 1802.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, "TopBar/QuizTab": { "rect": [ - 840.0, - 8.0, + 839.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SettingsButton": { - "rect": [ - 1538.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, - "TopBar/ShortcutsButton": { - "rect": [ - 1626.0, - 8.0, - 83.0, - 40.0 + 36.0 ], "visible": true }, "TopBar/StatisticsTab": { "rect": [ - 965.0, - 8.0, + 966.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SyncButton": { - "rect": [ - 1450.0, - 8.0, - 70.0, - 40.0 + 36.0 ], "visible": true }, @@ -41917,71 +41674,71 @@ }, "Quiz/PlayersPanel/VBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, - 401.0 + 1224.0, + 580.0, + 625.0, + 389.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1224.0, + 624.0, + 625.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerButton": { "rect": [ - 1617.0, - 620.0, - 39.0, - 40.0 + 1623.0, + 624.0, + 55.0, + 36.0 ], "visible": false }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel": { + "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/AddPlayerHint": { "rect": [ - 1216.0, - 620.0, - 196.0, - 40.0 - ], - "visible": false - }, - "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/Panel2": { - "rect": [ - 1660.0, - 620.0, - 197.0, - 40.0 + 1224.0, + 624.0, + 131.0, + 26.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/AddPlayerContainer/PlayerNameField": { "rect": [ - 1416.0, - 620.0, - 197.0, - 40.0 + 1395.0, + 624.0, + 220.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer": { "rect": [ - 1216.0, - 576.0, - 641.0, + 1224.0, + 580.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/AddPlayersButton": { "rect": [ - 1821.0, - 576.0, + 1813.0, + 582.0, + 36.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/HeaderBalance": { + "rect": [ + 1224.0, + 580.0, 36.0, 40.0 ], @@ -41989,244 +41746,190 @@ }, "Quiz/PlayersPanel/VBoxContainer/HBoxContainer/Label": { "rect": [ - 1216.0, - 576.0, - 601.0, + 1264.0, + 580.0, + 545.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 357.0 + 1224.0, + 624.0, + 625.0, + 345.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1": { "rect": [ - 1216.0, - 664.0, - 641.0, + 1224.0, + 666.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer": { "rect": [ - 1216.0, - 664.0, - 641.0, - 40.0 + 1232.0, + 668.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 664.0, + 1753.0, + 668.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 664.0, - 80.0, - 40.0 + 1677.0, + 668.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 670.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Name": { "rect": [ - 1225.0, - 664.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 664.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 664.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 664.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 664.0, - 3.0, - 40.0 + 1232.0, + 673.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 664.0, - 40.0, - 40.0 + 1232.0, + 668.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 664.0, + 1801.0, + 668.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/#1/HBoxContainer/Score": { + "rect": [ + 1629.0, + 669.0, + 40.0, + 34.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow": { "rect": [ - 1216.0, - 620.0, - 641.0, + 1224.0, + 624.0, + 625.0, 40.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer": { "rect": [ - 1216.0, - 620.0, - 641.0, - 40.0 + 1232.0, + 626.0, + 609.0, + 36.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/AddPoint": { "rect": [ - 1732.0, - 620.0, + 1753.0, + 626.0, 40.0, - 40.0 + 36.0 ], "visible": true }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Character": { + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame": { "rect": [ - 1614.0, - 620.0, - 80.0, - 40.0 + 1677.0, + 626.0, + 68.0, + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/CharacterFrame/Character": { + "rect": [ + 1679.0, + 628.0, + 64.0, + 32.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Name": { "rect": [ - 1225.0, - 620.0, - 365.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel": { - "rect": [ - 1827.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel2": { - "rect": [ - 1698.0, - 620.0, - 30.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel3": { - "rect": [ - 1594.0, - 620.0, - 16.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel4": { - "rect": [ - 1216.0, - 620.0, - 5.0, - 40.0 - ], - "visible": true - }, - "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Panel5": { - "rect": [ - 1776.0, - 620.0, - 3.0, - 40.0 + 1232.0, + 631.0, + 389.0, + 26.0 ], "visible": true }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePlayer": { "rect": [ - 1817.0, - 620.0, - 40.0, - 40.0 + 1232.0, + 626.0, + 36.0, + 36.0 ], "visible": false }, "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/RemovePoint": { "rect": [ - 1783.0, - 620.0, + 1801.0, + 626.0, 40.0, - 40.0 + 36.0 + ], + "visible": true + }, + "Quiz/PlayersPanel/VBoxContainer/ScrollContainer/PlayersListVBoxContainer/PlayerRow/HBoxContainer/Score": { + "rect": [ + 1629.0, + 627.0, + 40.0, + 34.0 ], "visible": true }, @@ -42475,73 +42178,73 @@ }, "Quiz/QuizToolbar": { "rect": [ - 1360.0, + 1216.0, 64.0, - 495.0, - 31.0 + 640.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPlaylistButton": { "rect": [ - 1488.0, + 1478.0, 64.0, - 111.0, - 31.0 + 127.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/ResetPointsButton": { "rect": [ - 1616.0, + 1617.0, 64.0, - 111.0, - 31.0 + 120.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SearchButton": { "rect": [ - 1360.0, + 1389.0, 64.0, - 111.0, - 31.0 + 77.0, + 36.0 ], "visible": true }, "Quiz/QuizToolbar/SoundTestButton": { "rect": [ - 1744.0, + 1749.0, 64.0, - 111.0, - 31.0 + 107.0, + 36.0 ], "visible": true }, "Quiz/SongControls": { "rect": [ - 65.0, - 944.0, - 303.0, - 31.0 + 64.0, + 940.0, + 640.0, + 36.0 ], "visible": true }, "Quiz/SongControls/NextButton": { "rect": [ - 193.0, - 944.0, - 175.0, - 31.0 + 203.0, + 940.0, + 102.0, + 36.0 ], "visible": true }, "Quiz/SongControls/ShowAnswerButton": { "rect": [ - 65.0, - 944.0, - 111.0, - 31.0 + 64.0, + 940.0, + 127.0, + 36.0 ], "visible": true }, @@ -43197,16 +42900,16 @@ "rect": [ 820.0, 495.0, - 298.0, + 282.0, 23.0 ], "visible": false }, "SettingsPopup/SettingsPanel/VBoxContainer/CharactersRow/ChooseCharactersButton": { "rect": [ - 1122.0, + 1106.0, 491.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -43224,7 +42927,7 @@ "rect": [ 720.0, 491.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -43240,9 +42943,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/ConfigFolderRow/OpenConfigFolderButton": { "rect": [ - 1099.0, + 1083.0, 666.0, - 101.0, + 117.0, 31.0 ], "visible": false @@ -43251,7 +42954,7 @@ "rect": [ 720.0, 666.0, - 375.0, + 359.0, 31.0 ], "visible": false @@ -43276,9 +42979,9 @@ }, "SettingsPopup/SettingsPanel/VBoxContainer/FolderRow/ChooseFolderButton": { "rect": [ - 1122.0, + 1106.0, 456.0, - 78.0, + 94.0, 31.0 ], "visible": false @@ -43287,7 +42990,7 @@ "rect": [ 832.0, 460.0, - 286.0, + 270.0, 23.0 ], "visible": false @@ -43305,7 +43008,7 @@ "rect": [ 720.0, 456.0, - 90.0, + 106.0, 31.0 ], "visible": false @@ -44304,7 +44007,7 @@ "rect": [ 32.0, 72.0, - 49.0, + 65.0, 31.0 ], "visible": false @@ -44385,7 +44088,7 @@ "rect": [ 32.0, 72.0, - 120.0, + 121.0, 31.0 ], "visible": false @@ -44741,12 +44444,57 @@ ], "visible": true }, - "TopBar/AboutButton": { + "TopBar/Buttons": { "rect": [ - 1722.0, - 8.0, - 70.0, - 40.0 + 1200.0, + 10.0, + 656.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/AboutButton": { + "rect": [ + 1726.0, + 10.0, + 71.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/QRButton": { + "rect": [ + 1809.0, + 10.0, + 47.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SettingsButton": { + "rect": [ + 1517.0, + 10.0, + 86.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/ShortcutsButton": { + "rect": [ + 1615.0, + 10.0, + 99.0, + 36.0 + ], + "visible": true + }, + "TopBar/Buttons/SyncButton": { + "rect": [ + 1445.0, + 10.0, + 60.0, + 36.0 ], "visible": true }, @@ -44768,57 +44516,21 @@ ], "visible": false }, - "TopBar/QRButton": { - "rect": [ - 1802.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, "TopBar/QuizTab": { "rect": [ - 840.0, - 8.0, + 839.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SettingsButton": { - "rect": [ - 1538.0, - 8.0, - 70.0, - 40.0 - ], - "visible": true - }, - "TopBar/ShortcutsButton": { - "rect": [ - 1626.0, - 8.0, - 83.0, - 40.0 + 36.0 ], "visible": true }, "TopBar/StatisticsTab": { "rect": [ - 965.0, - 8.0, + 966.0, + 10.0, 115.0, - 40.0 - ], - "visible": true - }, - "TopBar/SyncButton": { - "rect": [ - 1450.0, - 8.0, - 70.0, - 40.0 + 36.0 ], "visible": true }, diff --git a/tests/fakes/main_window_test_suite.gd b/tests/fakes/main_window_test_suite.gd index f1e7c63..e07aaa8 100644 --- a/tests/fakes/main_window_test_suite.gd +++ b/tests/fakes/main_window_test_suite.gd @@ -48,6 +48,8 @@ func before_test() -> void: _runner = scene_runner("res://main/MainWindow.tscn") _window = _runner.scene() _quiz = _window.get_node("Quiz") + # Rows of buttons are laid out by their containers at the end of the first frame + await _runner.simulate_frames(1) ## Override to change the fake server before the window starts and sends its first @@ -82,7 +84,7 @@ func _play_first_song() -> void: ## Adds a player through the name field, the same way the user does. func _add_player(player_name: String) -> PlayerObject: - var name_field: TextEdit = _quiz.get_node( + var name_field: LineEdit = _quiz.get_node( "PlayersPanel/VBoxContainer/AddPlayerContainer/PlayerNameField") name_field.text = player_name _quiz.players_panel.add_player() @@ -101,7 +103,7 @@ func _player_row(player_object: PlayerObject) -> PlayerRow: ## Removes a player with the remove button in its row. func _remove_player(player_object: PlayerObject) -> void: - (_player_row(player_object).get_node("HBoxContainer/RemovePlayer") as BaseButton) \ + (_player_row(player_object).get_node("%RemovePlayer") as BaseButton) \ .pressed.emit() await _runner.simulate_frames(1) diff --git a/tests/fakes/ui_tour.gd b/tests/fakes/ui_tour.gd index 44a6a2d..0ca0680 100644 --- a/tests/fakes/ui_tour.gd +++ b/tests/fakes/ui_tour.gd @@ -435,7 +435,7 @@ func _settle() -> void: func _add_player(player_name: String) -> void: (_node("PlayersPanel").get_node("VBoxContainer/AddPlayerContainer/PlayerNameField") \ - as TextEdit).text = player_name + as LineEdit).text = player_name _call("add_player") diff --git a/tests/integration/test_about_popup.gd b/tests/integration/test_about_popup.gd index 00b2ec7..1ada4fb 100644 --- a/tests/integration/test_about_popup.gd +++ b/tests/integration/test_about_popup.gd @@ -14,12 +14,12 @@ func _before_window_starts() -> void: func before_test() -> void: - super() + await super() _popup = _window.get_node("AboutPopup") func _open_with_top_bar_button() -> void: - await _click_at((_window.get_node("TopBar/AboutButton") as Control).get_global_rect() + await _click_at((_window.get_node("TopBar/%AboutButton") as Control).get_global_rect() .get_center()) diff --git a/tests/integration/test_character_folders.gd b/tests/integration/test_character_folders.gd index dfff3bf..cfaef57 100644 --- a/tests/integration/test_character_folders.gd +++ b/tests/integration/test_character_folders.gd @@ -15,7 +15,7 @@ func _before_window_starts() -> void: func before_test() -> void: - super() + await super() _settings = _window.settings_popup await _runner.simulate_frames(2) diff --git a/tests/integration/test_character_select_popup.gd b/tests/integration/test_character_select_popup.gd index da4989c..3b5bce1 100644 --- a/tests/integration/test_character_select_popup.gd +++ b/tests/integration/test_character_select_popup.gd @@ -21,7 +21,7 @@ func _before_window_starts() -> void: func before_test() -> void: - super() + await super() _picked.clear() _popup = _quiz.get_node("CharacterSelectPopup") _popup.character_selected.connect( diff --git a/tests/integration/test_continue_quiz.gd b/tests/integration/test_continue_quiz.gd index 3d4de85..2d5e830 100644 --- a/tests/integration/test_continue_quiz.gd +++ b/tests/integration/test_continue_quiz.gd @@ -167,7 +167,8 @@ func test_players_rows_show_the_saved_scores() -> void: await _restart_game([SONG_INFO[0], SECOND_SONG]) var row: PlayerRow = _player_row(Settings.player_array[0]) - assert_str(row.player_name_field.text).ends_with("Crono: 1") + assert_str(row.player_name_field.text).is_equal("Crono") + assert_str(row.score_label.text).is_equal("1") func test_song_downloaded_ahead_is_kept_and_not_downloaded_again() -> void: diff --git a/tests/integration/test_log_and_qr_popups.gd b/tests/integration/test_log_and_qr_popups.gd index 41e8665..84d9cab 100644 --- a/tests/integration/test_log_and_qr_popups.gd +++ b/tests/integration/test_log_and_qr_popups.gd @@ -6,7 +6,7 @@ var _qr: QRPopup func before_test() -> void: - super() + await super() _log = _window.get_node("LogPopup") _qr = _window.get_node("QRPopup") diff --git a/tests/integration/test_main_window.gd b/tests/integration/test_main_window.gd index 58e4f6a..ec0e84b 100644 --- a/tests/integration/test_main_window.gd +++ b/tests/integration/test_main_window.gd @@ -161,7 +161,7 @@ func test_cache_keeps_filling_after_a_failed_download() -> void: func _open_settings() -> void: - (_window.get_node("TopBar/SettingsButton") as Button).pressed.emit() + (_window.get_node("TopBar/%SettingsButton") as Button).pressed.emit() func _close_settings() -> void: diff --git a/tests/integration/test_offline_mode.gd b/tests/integration/test_offline_mode.gd index c091836..bb366b0 100644 --- a/tests/integration/test_offline_mode.gd +++ b/tests/integration/test_offline_mode.gd @@ -9,7 +9,7 @@ var _top_bar: TopBar func before_test() -> void: _root = create_temp_dir("offline_%d" % randi()) - super() + await super() _settings = _window.get_node("SettingsPopup") _top_bar = _window.get_node("TopBar") @@ -314,7 +314,7 @@ func test_new_game_turns_show_winner_back_into_next() -> void: await _runner.simulate_frames(2) var next_button: Button = _quiz.get_node("SongControls/NextButton") - assert_str(next_button.text).is_equal("Randomize new track") + assert_str(next_button.text).is_equal("Next song") await _play_first_song() assert_str(Playlist.song_object_array[Playlist.currently_playing_song].song_title) \ .is_equal("01. Opening") diff --git a/tests/integration/test_player_keybinds.gd b/tests/integration/test_player_keybinds.gd index 08ca816..762f031 100644 --- a/tests/integration/test_player_keybinds.gd +++ b/tests/integration/test_player_keybinds.gd @@ -10,7 +10,7 @@ var _lucca: PlayerObject func before_test() -> void: - super() + await super() _crono = _add_player("Crono") _marle = _add_player("Marle") _lucca = _add_player("Lucca") diff --git a/tests/integration/test_players_panel.gd b/tests/integration/test_players_panel.gd index 85afdc4..cdcf31c 100644 --- a/tests/integration/test_players_panel.gd +++ b/tests/integration/test_players_panel.gd @@ -118,7 +118,7 @@ func test_remove_button_removes_the_player_and_row() -> void: var crono: PlayerObject = Settings.player_array[0] var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel)) - (_rows()[0].get_node("HBoxContainer/RemovePlayer") as BaseButton).pressed.emit() + (_rows()[0].get_node("%RemovePlayer") as BaseButton).pressed.emit() await signals.is_emitted("player_removed", [crono]) assert_array(Settings.player_array.map( @@ -132,7 +132,7 @@ func test_character_button_asks_for_a_new_character() -> void: var row: PlayerRow = _rows()[0] var signals: GdUnitSignalAssert = assert_signal(monitor_signals(_panel)) - (row.get_node("HBoxContainer/Character") as BaseButton).pressed.emit() + (row.get_node("%Character") as BaseButton).pressed.emit() await signals.is_emitted("change_character_requested", [row, "Crono"]) @@ -143,5 +143,95 @@ func test_reload_shows_new_scores() -> void: _panel.reload() - assert_str(((_rows()[0] as PlayerRow).get_node("HBoxContainer/Name") as Label).text) \ - .ends_with("Crono: 3") + assert_str((_rows()[0] as PlayerRow).score_label.text).is_equal("3") + + +func test_row_shows_the_name_and_the_score_apart() -> void: + _add("Crono") + var row: PlayerRow = _rows()[0] + + row.add_point() + row.add_point() + + assert_str(row.player_name_field.text).is_equal("Crono") + assert_str(row.score_label.text).is_equal("2") + + +func test_names_are_trimmed_and_blank_ones_refused() -> void: + _add(" Crono ") + _add(" ") + + assert_array(Settings.player_array.map( + func(p: PlayerObject) -> String: return p.player_name)).contains_exactly(["Crono"]) + + +func test_a_name_can_only_be_used_once() -> void: + _add("Crono") + _add("crono") + + assert_int(Settings.player_array.size()).is_equal(1) + assert_str(_panel.new_player_name_field.text).is_equal("crono") + + +func test_name_field_takes_at_most_ten_letters() -> void: + _panel.new_player_name_field.insert_text_at_caret("Abcdefghijklmnop") + + assert_str(_panel.new_player_name_field.text).is_equal("Abcdefghij") + + +func test_full_list_says_so_instead_of_offering_the_name_field() -> void: + await _click(_panel.add_players_button) + for i: int in Settings.MAX_NUMBER_OF_PLAYERS: + _add("Player %d" % i) + + assert_bool(_panel.add_player_hint.visible).is_true() + assert_str(_panel.add_player_hint.text).is_equal("Up to 7 players") + assert_bool(_panel.new_player_name_field.visible).is_false() + + (_rows()[0].get_node("%RemovePlayer") as BaseButton).pressed.emit() + + assert_bool(_panel.add_player_hint.visible).is_false() + assert_bool(_panel.new_player_name_field.visible).is_true() + + +func test_remove_buttons_show_only_while_editing() -> void: + _add("Crono") + var remove: Control = _rows()[0].get_node("%RemovePlayer") + assert_bool(remove.visible).is_false() + + await _click(_panel.add_players_button) + assert_bool((_rows()[0].get_node("%RemovePlayer") as Control).visible).is_true() + + await _click(_panel.add_players_button) + assert_bool((_rows()[0].get_node("%RemovePlayer") as Control).visible).is_false() + + +func test_rows_alternate_like_the_other_lists() -> void: + _add("Crono") + _add("Marle") + _add("Lucca") + + assert_array(_rows().map(func(row: PlayerRow) -> String: return row.theme_type_variation)) \ + .contains_exactly(["ListRowEven", "ListRowOdd", "ListRowEven"]) + + +func test_character_is_highlighted_under_the_mouse() -> void: + _add("Crono") + var row: PlayerRow = _rows()[0] + + row.character.mouse_entered.emit() + assert_str(row.character_frame.theme_type_variation).is_equal("PlayerCharacterHover") + row.character.mouse_exited.emit() + assert_str(row.character_frame.theme_type_variation).is_equal("PlayerCharacter") + assert_str(row.character.tooltip_text).is_equal("Change character") + + +func test_seven_players_fit_without_scrolling_while_adding() -> void: + await _click(_panel.add_players_button) + for i: int in Settings.MAX_NUMBER_OF_PLAYERS: + _add("Player %d" % i) + await _runner.simulate_frames(2) + + var panel: Rect2 = _panel.get_global_rect() + var last: Rect2 = (_rows().back() as Control).get_global_rect() + assert_bool(panel.encloses(last)).is_true() diff --git a/tests/integration/test_quiz_settings_card.gd b/tests/integration/test_quiz_settings_card.gd index b2b4239..f242a73 100644 --- a/tests/integration/test_quiz_settings_card.gd +++ b/tests/integration/test_quiz_settings_card.gd @@ -7,7 +7,7 @@ var _button: Button func before_test() -> void: - super() + await super() _card = _quiz.get_node("QuizSettingsCard") _button = _quiz.get_node("QuizSettingsButton") diff --git a/tests/integration/test_quiz_toolbar.gd b/tests/integration/test_quiz_toolbar.gd index 3c1d21e..fd241e7 100644 --- a/tests/integration/test_quiz_toolbar.gd +++ b/tests/integration/test_quiz_toolbar.gd @@ -16,6 +16,7 @@ var _toolbar: QuizToolbar func before_test() -> void: _runner = scene_runner("res://quiz/QuizToolbar.tscn") _toolbar = _runner.scene() + await _runner.simulate_frames(1) func _button(button_name: String) -> Button: diff --git a/tests/integration/test_scene_split.gd b/tests/integration/test_scene_split.gd index 550094c..74afe90 100644 --- a/tests/integration/test_scene_split.gd +++ b/tests/integration/test_scene_split.gd @@ -28,9 +28,12 @@ const LOCKED_BY_SYNC: Array[String] = [ ] const TOP_BAR_CHILDREN: Array[String] = [ - "TopPanelContainer", "Title", "SyncButton", "SettingsButton", "ShortcutsButton", - "DebugLabel", "UpdateLabel", "OfflineLabel", - "AboutButton", "QRButton", "QuizTab", "StatisticsTab", + "TopPanelContainer", "Title", "DebugLabel", "UpdateLabel", "OfflineLabel", "Buttons", + "QuizTab", "StatisticsTab", +] +## The buttons in the top bar's row on the right, in order. +const TOP_BAR_BUTTONS: Array[String] = [ + "SyncButton", "SettingsButton", "ShortcutsButton", "AboutButton", "QRButton", ] ## Each top bar button and the popup it opens in the main window. @@ -44,7 +47,7 @@ const TOP_BAR_POPUPS: Dictionary = { func _top_bar_button(button_name: String) -> Button: - return _window.get_node("TopBar/" + button_name) + return _window.get_node("TopBar/%" + button_name) func _children(node: Node) -> Array[String]: @@ -90,6 +93,7 @@ func test_quiz_settings_button_sits_under_the_player_bar() -> void: func test_top_bar_holds_only_title_and_buttons() -> void: assert_array(_children(_window.get_node("TopBar"))) \ .contains_exactly_in_any_order(TOP_BAR_CHILDREN) + assert_array(_children(_window.get_node("TopBar/Buttons"))).contains_exactly(TOP_BAR_BUTTONS) func test_quiz_and_top_bar_let_clicks_through_where_they_are_empty() -> void: @@ -148,7 +152,7 @@ func test_points_from_the_player_list_reach_the_song_and_log() -> void: await _play_first_song() var crono: PlayerObject = _add_player("Crono") - (_player_row(crono).get_node("HBoxContainer/AddPoint") as BaseButton).pressed.emit() + (_player_row(crono).get_node("%AddPoint") as BaseButton).pressed.emit() assert_array(Playlist.song_object_array[0].players_given_point).contains_exactly([crono.id]) var log_rows: Node = _window.get_node("%LogPopup").get_node("%LogVBoxContainer") @@ -160,7 +164,7 @@ func test_character_button_in_the_player_list_picks_a_new_character() -> void: var crono: PlayerObject = _add_player("Crono") var character_select: BasePopup = _quiz.get_node("CharacterSelectPopup") - (_player_row(crono).get_node("HBoxContainer/Character") as BaseButton).pressed.emit() + (_player_row(crono).get_node("%Character") as BaseButton).pressed.emit() assert_bool(character_select.visible).is_true() var texture: ImageTexture = ImageTexture.create_from_image( diff --git a/tests/integration/test_search_popup.gd b/tests/integration/test_search_popup.gd index d1d8211..08110b9 100644 --- a/tests/integration/test_search_popup.gd +++ b/tests/integration/test_search_popup.gd @@ -15,7 +15,7 @@ func _before_window_starts() -> void: func before_test() -> void: - super() + await super() _popup = _window.get_node("SearchPopup") diff --git a/tests/integration/test_settings_popup.gd b/tests/integration/test_settings_popup.gd index 32e6d4d..670faf6 100644 --- a/tests/integration/test_settings_popup.gd +++ b/tests/integration/test_settings_popup.gd @@ -5,7 +5,7 @@ var _popup: SettingsPopup func before_test() -> void: - super() + await super() _popup = _window.get_node("SettingsPopup") diff --git a/tests/integration/test_shortcuts_popup.gd b/tests/integration/test_shortcuts_popup.gd index 0db2155..31a2d07 100644 --- a/tests/integration/test_shortcuts_popup.gd +++ b/tests/integration/test_shortcuts_popup.gd @@ -6,7 +6,7 @@ var _popup: ShortcutsPopup func before_test() -> void: - super() + await super() _popup = _window.get_node("ShortcutsPopup") diff --git a/tests/integration/test_song_controls.gd b/tests/integration/test_song_controls.gd index 4eb8a15..b20baf0 100644 --- a/tests/integration/test_song_controls.gd +++ b/tests/integration/test_song_controls.gd @@ -9,6 +9,7 @@ var _controls: SongControls func before_test() -> void: _runner = scene_runner("res://quiz/SongControls.tscn") _controls = _runner.scene() + await _runner.simulate_frames(1) func _click(button: Button) -> void: diff --git a/tests/integration/test_statistics_view.gd b/tests/integration/test_statistics_view.gd index b0ea2b9..aef85ea 100644 --- a/tests/integration/test_statistics_view.gd +++ b/tests/integration/test_statistics_view.gd @@ -33,12 +33,12 @@ func _before_window_starts() -> void: func before_test() -> void: - super() + await super() _view = _window.get_node("StatisticsView") func _open_statistics() -> void: - await _click_at(_center(_window.get_node("TopBar/StatisticsTab"))) + await _click_at(_center(_window.get_node("TopBar/%StatisticsTab"))) await _runner.simulate_frames(2) @@ -73,7 +73,7 @@ func _visible_texts(list: VBoxContainer) -> Array[String]: func test_quiz_tab_is_chosen_at_startup() -> void: assert_bool(_view.visible).is_false() - assert_bool((_window.get_node("TopBar/QuizTab") as Button).button_pressed).is_true() + assert_bool((_window.get_node("TopBar/%QuizTab") as Button).button_pressed).is_true() assert_int(_server.count("/statistics/soundtracks")).is_equal(0) @@ -82,8 +82,8 @@ func test_clicking_statistics_tab_shows_statistics_instead_of_the_quiz() -> void assert_bool(_view.visible).is_true() assert_bool(_quiz.visible).is_false() - assert_bool((_window.get_node("TopBar/StatisticsTab") as Button).button_pressed).is_true() - assert_bool((_window.get_node("TopBar/QuizTab") as Button).button_pressed).is_false() + assert_bool((_window.get_node("TopBar/%StatisticsTab") as Button).button_pressed).is_true() + assert_bool((_window.get_node("TopBar/%QuizTab") as Button).button_pressed).is_false() assert_vector(_view.get_global_rect().position).is_equal(Vector2(0, 56)) assert_vector(_view.get_global_rect().size).is_equal(Vector2(1920, 1024)) @@ -91,11 +91,11 @@ func test_clicking_statistics_tab_shows_statistics_instead_of_the_quiz() -> void func test_clicking_quiz_tab_goes_back_to_the_quiz() -> void: await _open_statistics() - await _click_at(_center(_window.get_node("TopBar/QuizTab"))) + await _click_at(_center(_window.get_node("TopBar/%QuizTab"))) assert_bool(_view.visible).is_false() assert_bool(_quiz.visible).is_true() - assert_bool((_window.get_node("TopBar/QuizTab") as Button).button_pressed).is_true() + assert_bool((_window.get_node("TopBar/%QuizTab") as Button).button_pressed).is_true() func test_clicks_on_statistics_do_not_reach_the_quiz_behind() -> void: @@ -119,7 +119,7 @@ func test_song_keeps_playing_behind_statistics() -> void: func test_statistics_are_loaded_again_each_time_the_tab_opens() -> void: await _open_statistics() - await _click_at(_center(_window.get_node("TopBar/QuizTab"))) + await _click_at(_center(_window.get_node("TopBar/%QuizTab"))) await _open_statistics() assert_int(_server.count("/statistics/soundtracks")).is_equal(2) diff --git a/tests/integration/test_stats_after_win.gd b/tests/integration/test_stats_after_win.gd index e4c5a0e..bfdabfc 100644 --- a/tests/integration/test_stats_after_win.gd +++ b/tests/integration/test_stats_after_win.gd @@ -5,7 +5,7 @@ var _crono: PlayerObject func before_test() -> void: - super() + await super() _crono = _add_player("Crono") await _play_first_song() Settings.winning_score = 1 diff --git a/tests/integration/test_theme.gd b/tests/integration/test_theme.gd index 4069b6d..d0de524 100644 --- a/tests/integration/test_theme.gd +++ b/tests/integration/test_theme.gd @@ -14,7 +14,11 @@ const GAME_FOLDERS: Array[String] = [ const STYLES: Dictionary = { "WindowBackground": "Panel", "PopupBackground": "Panel", - "DarkSpacer": "Panel", + "StepButton": "Button", + "PlayerList": "PanelContainer", + "PlayerCharacter": "PanelContainer", + "PlayerCharacterHover": "PanelContainer", + "PlayerScore": "Label", "CharacterCard": "Panel", "CharacterCardHover": "Panel", "SettingsRowLabel": "Label", diff --git a/tests/integration/test_update_notice.gd b/tests/integration/test_update_notice.gd index 860c9a7..e811e18 100644 --- a/tests/integration/test_update_notice.gd +++ b/tests/integration/test_update_notice.gd @@ -5,7 +5,7 @@ var _top_bar: TopBar func before_test() -> void: - super() + await super() _top_bar = _window.get_node("TopBar") @@ -33,9 +33,9 @@ func test_message_fits_between_the_tabs_and_the_buttons() -> void: var text_width: float = _top_bar.update_label.get_minimum_size().x assert_float(text_width).is_less_equal(label.size.x) assert_float(label.position.x).is_greater( - (_top_bar.get_node("StatisticsTab") as Control).get_global_rect().end.x) + (_top_bar.get_node("%StatisticsTab") as Control).get_global_rect().end.x) assert_float(label.end.x).is_less( - (_top_bar.get_node("SyncButton") as Control).get_global_rect().position.x) + (_top_bar.get_node("%SyncButton") as Control).get_global_rect().position.x) func test_message_stays_on_the_statistics_tab() -> void: diff --git a/tests/integration/test_winner_popup.gd b/tests/integration/test_winner_popup.gd index b31d1f0..a0643c4 100644 --- a/tests/integration/test_winner_popup.gd +++ b/tests/integration/test_winner_popup.gd @@ -8,7 +8,7 @@ var _popup: WinnerPopup func before_test() -> void: - super() + await super() _crono = _add_player("Crono") _marle = _add_player("Marle") _popup = _quiz.get_node("WinnerPopup") diff --git a/themes/main_theme.tres b/themes/main_theme.tres index 2cd531b..7f839c1 100644 --- a/themes/main_theme.tres +++ b/themes/main_theme.tres @@ -3,9 +3,9 @@ [ext_resource type="FontFile" path="res://fonts/OpenSans-SemiBold.woff2" id="1_default_font"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vxwtt"] -content_margin_left = 4.0 +content_margin_left = 12.0 content_margin_top = 4.0 -content_margin_right = 4.0 +content_margin_right = 12.0 content_margin_bottom = 4.0 bg_color = Color(0.1, 0.1, 0.1, 0.3) corner_radius_top_left = 3 @@ -36,9 +36,9 @@ expand_margin_right = 2.0 expand_margin_bottom = 2.0 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vu6l5"] -content_margin_left = 4.0 +content_margin_left = 12.0 content_margin_top = 4.0 -content_margin_right = 4.0 +content_margin_right = 12.0 content_margin_bottom = 4.0 bg_color = Color(0.225, 0.225, 0.225, 0.6) corner_radius_top_left = 3 @@ -48,9 +48,9 @@ corner_radius_bottom_left = 3 corner_detail = 5 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ydht1"] -content_margin_left = 4.0 +content_margin_left = 12.0 content_margin_top = 4.0 -content_margin_right = 4.0 +content_margin_right = 12.0 content_margin_bottom = 4.0 bg_color = Color(0.1, 0.1, 0.1, 0.6) corner_radius_top_left = 3 @@ -60,9 +60,9 @@ corner_radius_bottom_left = 3 corner_detail = 5 [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8gw6x"] -content_margin_left = 4.0 +content_margin_left = 12.0 content_margin_top = 4.0 -content_margin_right = 4.0 +content_margin_right = 12.0 content_margin_bottom = 4.0 bg_color = Color(0, 0, 0, 0.6) corner_radius_top_left = 3 @@ -133,9 +133,6 @@ content_margin_top = 4.0 content_margin_right = 6.0 content_margin_bottom = 4.0 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f5ubn"] -bg_color = Color(0.180392, 0.180392, 0.180392, 1) - [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7qy2x"] content_margin_left = 4.0 content_margin_top = 4.0 @@ -776,9 +773,9 @@ vertical = true bg_color = Color(0.3, 0.3, 0.3, 1) [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tabpressed"] -content_margin_left = 8.0 +content_margin_left = 12.0 content_margin_top = 4.0 -content_margin_right = 8.0 +content_margin_right = 12.0 content_margin_bottom = 4.0 bg_color = Color(1, 0.5, 0, 0.85) corner_radius_top_left = 3 @@ -971,6 +968,84 @@ corner_radius_bottom_left = 3 [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_playerfocus"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_step_disabled"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.1, 0.1, 0.1, 0.3) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_step_hover"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.225, 0.225, 0.225, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_step_normal"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.1, 0.1, 0.1, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_step_pressed"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0, 0, 0, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_playerchar"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playercharhover"] +content_margin_left = 2.0 +content_margin_top = 2.0 +content_margin_right = 2.0 +content_margin_bottom = 2.0 +draw_center = false +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(1, 0.5, 0, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerlist"] +content_margin_left = 8.0 +content_margin_top = 4.0 +content_margin_right = 8.0 +content_margin_bottom = 8.0 +bg_color = Color(0.1, 0.1, 0.1, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + [resource] default_font = ExtResource("1_default_font") Button/colors/font_color = Color(0.875, 0.875, 0.875, 1) @@ -1019,8 +1094,6 @@ CheckButton/styles/hover = SubResource("StyleBoxEmpty_puucq") CheckButton/styles/hover_pressed = SubResource("StyleBoxEmpty_1mjdo") CheckButton/styles/normal = SubResource("StyleBoxEmpty_s5e0q") CheckButton/styles/pressed = SubResource("StyleBoxEmpty_0x86e") -DarkSpacer/base_type = &"Panel" -DarkSpacer/styles/panel = SubResource("StyleBoxFlat_f5ubn") GridContainer/constants/h_separation = 4 GridContainer/constants/v_separation = 4 HBoxContainer/constants/separation = 4 @@ -1118,6 +1191,14 @@ PlayerButtonPrimary/styles/pressed = SubResource("StyleBoxFlat_playerprimarypres PlayerTime/base_type = &"Label" PlayerTime/colors/font_color = Color(0.82, 0.82, 0.82, 1) PlayerTime/font_sizes/font_size = 18 +PlayerCharacter/base_type = &"PanelContainer" +PlayerCharacter/styles/panel = SubResource("StyleBoxEmpty_playerchar") +PlayerCharacterHover/base_type = &"PanelContainer" +PlayerCharacterHover/styles/panel = SubResource("StyleBoxFlat_playercharhover") +PlayerList/base_type = &"PanelContainer" +PlayerList/styles/panel = SubResource("StyleBoxFlat_playerlist") +PlayerScore/base_type = &"Label" +PlayerScore/font_sizes/font_size = 24 PopupBackground/base_type = &"Panel" PopupBackground/styles/panel = SubResource("StyleBoxFlat_vputg") PopupMenu/colors/font_accelerator_color = Color(0.7, 0.7, 0.7, 0.8) @@ -1204,6 +1285,11 @@ SongStatsSecondary/colors/default_color = Color(0.7, 0.7, 0.7, 1) SongStatsSecondary/font_sizes/normal_font_size = 18 SongStatsText/base_type = &"RichTextLabel" SongStatsText/font_sizes/normal_font_size = 18 +StepButton/base_type = &"Button" +StepButton/styles/disabled = SubResource("StyleBoxFlat_step_disabled") +StepButton/styles/hover = SubResource("StyleBoxFlat_step_hover") +StepButton/styles/normal = SubResource("StyleBoxFlat_step_normal") +StepButton/styles/pressed = SubResource("StyleBoxFlat_step_pressed") StatisticsCard/base_type = &"PanelContainer" StatisticsCard/styles/panel = SubResource("StyleBoxFlat_statscard") StatisticsCardHover/base_type = &"PanelContainer"