* Replace show ratings toggle with favorite/rating controls setting
Swap `genera.showRatings` (previously a simple bool) for a
`favoriteRatingControls` enum, exposed via derived `useShowRatings` /
`useShowFavorites` hooks. Settings switch becomes a select, with a
migration to a new v32 schema mapping the old boolean forward with no
user change.
* Gate favorite controls on `favoriteRatingControls` setting
Hide the playerbar and mobile fullscreen favorite buttons and the
context-menu favorite action when the setting excludes favorites,
mirroring how ratings are already gated.
* Gate favorite controls on item cards and detail list
Drill a `showFavorite` flag through the item-card tree (mirroring
`showRating`), and gate the card/detail-list favorite badges and hover
buttons on the `favoriteRatingControls` setting.
* Gate favorite controls in detail headers and album group controls
* Keep the original `showRatings` switch and add a `showFavorites`
* Gate album header favorite hander at definition
- add setting to allow duplicates
- add setting to only prefer similar sogs
- fix autodj algorithm to match by the priority order instead of incorrectly grouping when limit not reached
* feat: added playlist from queue creation
- added functionality to create a playlist from queue
- prefilling is done as an extra function to be api agnostic since navidrome native api for example does not offer a parameter for filling a playlist with songs on creation
#2204
* fix: fixed wrong declaration
* feat(player): add right-click audio output device menu to volume icon
Right-clicking the volume/speaker icon in the player bar now opens a
context menu listing available audio output devices, with the active
device checkmarked and a System default reset option.
Selecting a device writes to the existing audioDeviceId (web) or
mpvAudioDeviceId (mpv) playback settings, so the choice is applied live
and persisted across restarts via the settings store. Unlike the
settings-page selector, the menu is not disabled during playback.
* refactor(player): drop redundant audio menu label, document wrapper div
Address review feedback: remove the self-explanatory ContextMenu.Label
from the audio output menu, and add a comment explaining why the volume
icon is wrapped in a div (Mantine Tooltip does not forward Radix's
asChild onContextMenu/ref to the button).
Group playlists into folders using a configurable separator (default '/').
Three view modes:
- Single: first-level grouping only (original behavior)
- Tree: full recursive nesting with connecting lines (configurable indent and line color)
- Navigation: drill-down view with stacked breadcrumb chain
Folders are sorted before playlists at every level. New settings render as
indented sub-options under the master 'Enable folders' toggle.
* feat(playlist): support updating playlist track order
* force track mode when editing
* use common confirmation for save
* remove en editPLaylist key