Show every song in the statistics, as an alternative to the cards

A Soundtracks / Songs switch in the statistics toolbar shows a list of
every song with its soundtrack and how often it was played. It is searched
on both song and soundtrack names, filtered and sorted like the cards, and
clicking a song shows its soundtrack's popup.

The server has tens of thousands of songs, so the list only makes the rows
on screen and reuses them while scrolling, songs are sorted once per load,
and searching waits for a pause in typing.

Closes #47
This commit is contained in:
Sansan committed 2026-10-09 17:02:27 +02:00
1 parent cd4331881c
commit a4e6da4c28
14 files changed
+10058 -1670

No files matched your search

+4 -1
View File
@@ -37,7 +37,8 @@ inspector or `theme_type_variation` in code:
| `MusicList` | PanelContainer | The list of songs in the quiz |
| `SongRow` | PanelContainer | One song in that list |
| `ShortcutRowDark` | PanelContainer | Every other row in the shortcuts popup |
| `ListRowEven`, `ListRowOdd` | PanelContainer | Alternating rows in the inspiration and sync lists |
| `ListRowEven`, `ListRowOdd` | PanelContainer | Alternating rows in the inspiration, sync and statistics song lists |
| `ListRowHover` | PanelContainer | A row in the statistics song list under the mouse |
| `TitleLarge` | Label | The soundtrack that is playing (50) |
| `TitleMedium` | Label | The song that is playing, and the winner (35) |
| `Title` | Label | The window title and popup titles (25) |
@@ -48,6 +49,8 @@ inspector or `theme_type_variation` in code:
| `TabButton` | Button | The Quiz and Statistics tabs; the chosen one is orange |
| `StatisticsCard`, `StatisticsCardHover` | PanelContainer | A soundtrack card in the statistics, and the one under the mouse |
| `StatisticsGrid` | GridContainer | The grid of soundtrack cards, with the space between them |
| `SongStatsHeader` | PanelContainer | The column titles above the statistics song list, spaced like its rows |
| `SongStatsText`, `SongStatsSecondary` | RichTextLabel | A song's name and its soundtrack (dimmer) in the statistics song list |
**Palette**: colours used from code.