fix(qt): saving the queue as a playlist works with local rows, and offline
queue_qt::save_as_playlist skipped every local and ephemeral row and, with no catalog ids left, returned without a word — a queue of Local Library tracks opened nothing from either the queue panel or the Listen list, online or offline. The module's own note said the picker's local mode existed and only the row-to-ref resolver was missing. local_playlist_qt::local_picker_ref_for_queue_track now builds that ref from a QueueTrack by source (a file its row id, Plex its rating key, Jellyfin/Subsonic the server item id, an offline copy its row id from the hint slot; an ephemeral row nothing), and the queue carries ids and refs together: only local rows open the picker in local mode, a mix carries the new Payload::Mixed, which the picker routes as the two halves would be on their own — both writes onto a local playlist, the sidecar plus the API (duplicate check included) onto a Qobuz one, a local playlist on create while offline. The per-row "Add to playlist" entry shows for local rows on both queue surfaces too. cc
This commit is contained in:
1 parent
47b5c14d32
commit
1c45c7f2b9
5 files changed
+218
-68
No files matched your search
@@ -319,9 +319,10 @@ Rectangle {
|
||||
items.push({ "label": t("Go to artist", r), "icon": "user",
|
||||
"action": "go-artist", "external": true })
|
||||
if (row.isEphemeral !== true) {
|
||||
if (row.isLocal !== true)
|
||||
items.push({ "label": t("Add to playlist", r), "icon": "list-plus",
|
||||
"action": "add-to-playlist", "external": true })
|
||||
// Local rows too (2026-09-14): the queue resolves them to picker
|
||||
// refs by source (queue_qt::picker_payload_for).
|
||||
items.push({ "label": t("Add to playlist", r), "icon": "list-plus",
|
||||
"action": "add-to-playlist", "external": true })
|
||||
items.push({ "label": t("Track info", r), "icon": "info", "action": "track-info" })
|
||||
if (row.isLocal !== true)
|
||||
items.push({ "label": row.isFavorite === true
|
||||
|
||||
Reference in new issue
Block a user