From 6cbbfee6a15a80697fc01bd0acd73c79074d1816 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 5 Oct 2026 21:42:53 +0200 Subject: [PATCH] Tidy up popup layouts - Settings: labels in one column and switches and number buttons lined up in another, with margins inside the panel - Log: title and margins; text no longer touches the panel edge - Sync result: error list centred under its header, which now reads Errors instead of CatchedErrors - About: text wraps inside the panel instead of running under the scrollbar - Character select: wider panel, so the right column of characters is no longer right next to the scrollbar --- AboutWindow.tscn | 7 +++-- Log.tscn | 23 +++++++++++----- MainWindow.tscn | 4 +-- SettingsWindow.tscn | 39 ++++++++++++++++++--------- SyncWindow.tscn | 1 + new_character_select.tscn | 4 +-- sync_window.gd | 2 +- tests/integration/test_sync_window.gd | 10 +++++++ 8 files changed, 63 insertions(+), 27 deletions(-) diff --git a/AboutWindow.tscn b/AboutWindow.tscn index c0ffcdb..9232ef6 100644 --- a/AboutWindow.tscn +++ b/AboutWindow.tscn @@ -30,10 +30,11 @@ vertical_alignment = 1 [node name="ScrollContainer" type="ScrollContainer" parent="AboutPanel" unique_id=417677913] layout_mode = 0 -offset_left = 10.0 +offset_left = 20.0 offset_top = 50.0 -offset_right = 590.0 +offset_right = 580.0 offset_bottom = 630.0 +horizontal_scroll_mode = 0 [node name="ContentVBox" type="VBoxContainer" parent="AboutPanel/ScrollContainer" unique_id=1746337912] layout_mode = 2 @@ -47,7 +48,6 @@ size_flags_horizontal = 3 horizontal_alignment = 1 [node name="DescriptionLabel" type="Label" parent="AboutPanel/ScrollContainer/ContentVBox" unique_id=543094263] -custom_minimum_size = Vector2(560, 0) layout_mode = 2 size_flags_horizontal = 3 text = "Try your video game music knowledge with this VGM randomizer, invite your friends and see who is the best." @@ -56,7 +56,6 @@ autowrap_mode = 2 [node name="WhatsNewLabel" type="Label" parent="AboutPanel/ScrollContainer/ContentVBox" unique_id=1363040291] unique_name_in_owner = true -custom_minimum_size = Vector2(560, 0) layout_mode = 2 size_flags_horizontal = 3 autowrap_mode = 2 diff --git a/Log.tscn b/Log.tscn index 47e231f..587cad0 100644 --- a/Log.tscn +++ b/Log.tscn @@ -20,17 +20,28 @@ unique_name_in_owner = true visibility_layer = 513 custom_minimum_size = Vector2(700, 700) layout_mode = 0 -offset_right = 40.0 -offset_bottom = 40.0 +offset_right = 700.0 +offset_bottom = 700.0 + +[node name="TitleLabel" type="Label" parent="LogPanel"] +layout_mode = 0 +offset_top = 8.0 +offset_right = 700.0 +offset_bottom = 48.0 +theme_override_font_sizes/font_size = 25 +text = "Log" +horizontal_alignment = 1 [node name="LogScrollContainer" type="ScrollContainer" parent="LogPanel"] -custom_minimum_size = Vector2(700, 700) layout_mode = 0 -offset_right = 40.0 -offset_bottom = 40.0 +offset_left = 20.0 +offset_top = 56.0 +offset_right = 680.0 +offset_bottom = 684.0 +horizontal_scroll_mode = 0 [node name="LogVBoxContainer" type="VBoxContainer" parent="LogPanel/LogScrollContainer"] unique_name_in_owner = true -custom_minimum_size = Vector2(700, 700) layout_mode = 2 +size_flags_horizontal = 3 theme_override_constants/separation = 1 diff --git a/MainWindow.tscn b/MainWindow.tscn index ccdbb69..7954405 100644 --- a/MainWindow.tscn +++ b/MainWindow.tscn @@ -411,9 +411,9 @@ offset_bottom = 153.0 unique_name_in_owner = true visible = false layout_mode = 1 -offset_left = 420.0 +offset_left = 405.0 offset_top = 165.0 -offset_right = 1572.0 +offset_right = 1557.0 offset_bottom = 805.0 [node name="ShortcutsWindow" parent="." unique_id=1513416242 instance=ExtResource("13_8eebo")] diff --git a/SettingsWindow.tscn b/SettingsWindow.tscn index a35edc0..758d47f 100644 --- a/SettingsWindow.tscn +++ b/SettingsWindow.tscn @@ -25,8 +25,11 @@ offset_bottom = 640.0 [node name="ScrollContainer" type="ScrollContainer" parent="SettingsPanel" unique_id=1325795358] layout_mode = 0 -offset_right = 500.0 -offset_bottom = 640.0 +offset_left = 20.0 +offset_top = 8.0 +offset_right = 480.0 +offset_bottom = 632.0 +horizontal_scroll_mode = 0 [node name="VBoxContainer" type="VBoxContainer" parent="SettingsPanel/ScrollContainer" unique_id=1796635163] clip_contents = true @@ -43,7 +46,7 @@ horizontal_alignment = 1 [node name="StopAfterCurrentCheckButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=508305575] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 button_pressed = true action_mode = 0 text = "Stop after current" @@ -51,7 +54,7 @@ text = "Stop after current" [node name="HideNextTrackCheckButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=1568244599] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 button_pressed = true action_mode = 0 text = "Hide next track" @@ -59,21 +62,21 @@ text = "Hide next track" [node name="AddToDatabaseCheckButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=1673750542] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 action_mode = 0 text = "Turn on played to database" [node name="LowPlayedCheckButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=1672657048] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 action_mode = 0 text = "Use low played mode" [node name="HideBeginningCheckButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=1370617867] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 action_mode = 0 text = "Hide beginning of songs" @@ -84,12 +87,15 @@ layout_mode = 2 [node name="HideForSecondsTitle" type="Label" parent="SettingsPanel/ScrollContainer/VBoxContainer/HideForSecondsHBoxContainer" unique_id=1822369383] unique_name_in_owner = true layout_mode = 2 +size_flags_horizontal = 3 text = "Hide Start Seconds: " [node name="HideForSecondsLabel" type="Label" parent="SettingsPanel/ScrollContainer/VBoxContainer/HideForSecondsHBoxContainer" unique_id=1580108945] unique_name_in_owner = true +custom_minimum_size = Vector2(48, 0) layout_mode = 2 text = "5.0" +horizontal_alignment = 1 [node name="LowerHideForSecondsButton" type="Button" parent="SettingsPanel/ScrollContainer/VBoxContainer/HideForSecondsHBoxContainer" unique_id=180643442] unique_name_in_owner = true @@ -110,14 +116,14 @@ text = "+1" [node name="HideLengthCheckButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=67806372] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 action_mode = 0 text = "Hide length of songs" [node name="HideTicksCheckButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=706322752] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 action_mode = 0 text = "Hide ticks in playbar" @@ -126,12 +132,15 @@ layout_mode = 2 [node name="Label2" type="Label" parent="SettingsPanel/ScrollContainer/VBoxContainer/HBoxContainer" unique_id=1892907487] layout_mode = 2 +size_flags_horizontal = 3 text = "Winning Score: " [node name="ScoreLabel" type="Label" parent="SettingsPanel/ScrollContainer/VBoxContainer/HBoxContainer" unique_id=444542662] unique_name_in_owner = true +custom_minimum_size = Vector2(48, 0) layout_mode = 2 text = "20" +horizontal_alignment = 1 [node name="LowerButton" type="Button" parent="SettingsPanel/ScrollContainer/VBoxContainer/HBoxContainer" unique_id=614806355] unique_name_in_owner = true @@ -154,12 +163,15 @@ layout_mode = 2 [node name="CacheTitleLabel" type="Label" parent="SettingsPanel/ScrollContainer/VBoxContainer/CacheHBoxContainer" unique_id=365012193] layout_mode = 2 +size_flags_horizontal = 3 text = "Predownload songs: " [node name="CacheLabel" type="Label" parent="SettingsPanel/ScrollContainer/VBoxContainer/CacheHBoxContainer" unique_id=1558370172] unique_name_in_owner = true +custom_minimum_size = Vector2(48, 0) layout_mode = 2 text = "1" +horizontal_alignment = 1 [node name="LowerCacheButton" type="Button" parent="SettingsPanel/ScrollContainer/VBoxContainer/CacheHBoxContainer" unique_id=1990385038] unique_name_in_owner = true @@ -182,12 +194,15 @@ layout_mode = 2 [node name="InspirationListSpeedTitle" type="Label" parent="SettingsPanel/ScrollContainer/VBoxContainer/InspirationHBoxContainer" unique_id=1397861506] layout_mode = 2 +size_flags_horizontal = 3 text = "Inspiration List Speed: " [node name="InspirationListSpeedLabel" type="Label" parent="SettingsPanel/ScrollContainer/VBoxContainer/InspirationHBoxContainer" unique_id=867387668] unique_name_in_owner = true +custom_minimum_size = Vector2(48, 0) layout_mode = 2 text = "1" +horizontal_alignment = 1 [node name="LowerInspirationSpeedButton" type="Button" parent="SettingsPanel/ScrollContainer/VBoxContainer/InspirationHBoxContainer" unique_id=845209534] unique_name_in_owner = true @@ -224,13 +239,13 @@ popup/item_4/id = 5 [node name="FullscreenButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=400304684] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 text = "Fullscreen" [node name="QuickSyncButton" type="CheckButton" parent="SettingsPanel/ScrollContainer/VBoxContainer" unique_id=49497448] visible = false layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 button_pressed = true action_mode = 0 text = "Quick sync" @@ -239,6 +254,6 @@ text = "Quick sync" unique_name_in_owner = true visible = false layout_mode = 2 -size_flags_horizontal = 0 +size_flags_horizontal = 3 disabled = true text = "Local" diff --git a/SyncWindow.tscn b/SyncWindow.tscn index 7c3075f..0c25abd 100644 --- a/SyncWindow.tscn +++ b/SyncWindow.tscn @@ -149,6 +149,7 @@ layout_mode = 2 unique_name_in_owner = true visible = false layout_mode = 2 +size_flags_horizontal = 4 [node name="CatchedErrorsLabel" type="Label" parent="SyncPanel/ScrollContainer/SyncVBoxContainer/CatchedErrorsVBox" unique_id=1784389644] layout_mode = 2 diff --git a/new_character_select.tscn b/new_character_select.tscn index 0161caf..25e865d 100644 --- a/new_character_select.tscn +++ b/new_character_select.tscn @@ -16,12 +16,12 @@ panel = NodePath("CharacterPanel") [node name="CharacterPanel" type="Panel" parent="."] unique_name_in_owner = true layout_mode = 0 -offset_right = 1260.0 +offset_right = 1290.0 offset_bottom = 665.0 [node name="VBoxContainer" type="VBoxContainer" parent="CharacterPanel"] layout_mode = 0 -offset_right = 1263.0 +offset_right = 1290.0 offset_bottom = 659.0 size_flags_horizontal = 3 diff --git a/sync_window.gd b/sync_window.gd index 4eba0c8..7e71bd4 100644 --- a/sync_window.gd +++ b/sync_window.gd @@ -144,7 +144,7 @@ func on_sync_finished(data_received: Dictionary) -> void: if data_received.catched_errors != null && data_received.catched_errors.size() > 0: catched_errors_vbox.visible = true - make_list(data_received.catched_errors, catched_errors_vbox, "CatchedErrors") + make_list(data_received.catched_errors, catched_errors_vbox, "Errors") # Hide separators that don't have a visible section after them # The structure is: RestartSyncButton -> VSeparator6 -> VBox -> Separator -> VBox -> Separator -> ... diff --git a/tests/integration/test_sync_window.gd b/tests/integration/test_sync_window.gd index 26163c3..5b15bc1 100644 --- a/tests/integration/test_sync_window.gd +++ b/tests/integration/test_sync_window.gd @@ -143,3 +143,13 @@ func test_reopening_after_sync_shows_result_without_syncing_again() -> void: assert_int(_server.count("/sync")).is_equal(1) assert_str(_node("SyncTitleLabel").text).is_equal("Sync Result") + + +func test_errors_section_has_errors_header() -> void: + _runner.invoke("start_sync") + var result: Dictionary = _empty_result() + result.catched_errors = ["Could not read tags in broken.mp3"] + + _finish_sync(result) + + assert_str((_node("CatchedErrorsVBox").get_child(0) as Label).text).is_equal("Errors")