feat(music): show full play queue with history, YouTube Music style

Queue sheet/panel now renders the whole playback order — dimmed played
tracks above the current one — instead of only up-next. Opens scrolled
to the current track and follows advancement while parked on it.
This commit is contained in:
edde746
2026-07-06 11:30:23 +02:00
parent fcdef343eb
commit 214a7c13dc
36 changed files with 181 additions and 236 deletions
+1 -3
View File
@@ -1223,7 +1223,6 @@ class _TranslationsMusicPt extends TranslationsMusicEn {
@override String get nowPlaying => 'Reproduzindo agora';
@override String playingFrom({required Object title}) => 'Reproduzindo de ${title}';
@override String get queue => 'Fila';
@override String get upNext => 'A seguir';
@override String get clearQueue => 'Limpar fila';
@override String get lyrics => 'Letra';
@override String get noLyrics => 'Nenhuma letra disponível';
@@ -2892,7 +2891,6 @@ extension on TranslationsPt {
'music.nowPlaying' => 'Reproduzindo agora',
'music.playingFrom' => ({required Object title}) => 'Reproduzindo de ${title}',
'music.queue' => 'Fila',
'music.upNext' => 'A seguir',
'music.clearQueue' => 'Limpar fila',
'music.lyrics' => 'Letra',
'music.noLyrics' => 'Nenhuma letra disponível',
@@ -3022,9 +3020,9 @@ extension on TranslationsPt {
'downloads.noSyncRules' => 'Nenhuma regra de sincronização',
'downloads.manageSyncRule' => 'Gerenciar sincronização',
'downloads.editEpisodeCount' => 'Número de episódios',
'downloads.editSyncFilter' => 'Filtro de sincronização',
_ => null,
} ?? switch (path) {
'downloads.editSyncFilter' => 'Filtro de sincronização',
'downloads.syncAllItems' => 'Sincronizando todos os itens',
'downloads.syncUnwatchedItems' => 'Sincronizando itens não vistos',
'downloads.syncRuleServerContext' => ({required Object server, required Object status}) => 'Servidor: ${server}${status}',