feat(slint): bulk "Make available offline" in the Library multi-select bar

Adds the 6th MultiSelectBar action -> offline_cache::cache_tracks(selected),
mirroring Tauri's bulk caching. Clears the selection after queuing. (Also
retires the cache_tracks dead-code warning.)

cc
This commit is contained in:
vicrodh committed 2026-05-28 08:28:47 -06:00
1 parent 4041499114
commit 3ffdca729d
2 files changed
+11

No files matched your search

+10
View File
@@ -4892,6 +4892,16 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let tracks = favorites::selected_tracks(&w);
playback::enqueue_tracks(runtime.clone(), handle.clone(), tracks, true);
}
"make-offline" => {
let tracks = favorites::selected_tracks(&w);
offline_cache::cache_tracks(
runtime.clone(),
weak.clone(),
handle.clone(),
tracks,
);
favorites::clear_selection(&w);
}
"add-to-playlist" => {
let ids = favorites::selected_ids(&w);
if !ids.is_empty() {
@@ -999,6 +999,7 @@ export component FavoritesView inherits Rectangle {
{ id: "play-next", label: @tr("Play next"), danger: false, needs-selection: true },
{ id: "queue", label: @tr("Add to queue"), danger: false, needs-selection: true },
{ id: "add-to-playlist", label: @tr("Add to playlist"), danger: false, needs-selection: true },
{ id: "make-offline", label: @tr("Make available offline"), danger: false, needs-selection: true },
{ id: "remove-selected", label: @tr("Remove from favorites"), danger: true, needs-selection: true },
{ id: "clear", label: @tr("Clear"), danger: false, needs-selection: true },
];