···6677### ToDo
8899+- Make removing from playlists work when filter or sorting is used (rn, if you remove the first shown track, it would remove the first track in the playlist)
910- Write tags to files:
1011 - m4a/aac: https://github.com/Saecki/rust-mp4ameta
1112 - mp3/mp3: https://github.com/polyfloyd/rust-id3
+5-5
native/src/page.rs
···162162 .trackLists
163163 .get_mut(&data.open_playlist_id)
164164 .ok_or(nerr!("Playlist ID not found"))?;
165165+ let playlist = match tracklist {
166166+ TrackList::Playlist(playlist) => playlist,
167167+ TrackList::Folder(_) => return Err(nerr!("Cannot rearrange tracks in folder")),
168168+ TrackList::Special(_) => return Err(nerr!("Cannot rearrange tracks in special playlist")),
169169+ };
165170 if data.sort_key != "index" || data.sort_desc != true {
166171 return Err(nerr!("Cannot rearrange when custom sorting is used"));
167172 }
168173 if data.filter != "" {
169174 return Err(nerr!("Cannot rearrange when filter is used"));
170175 }
171171- let playlist = match tracklist {
172172- TrackList::Playlist(playlist) => playlist,
173173- TrackList::Folder(_) => return Err(nerr!("Cannot rearrange tracks in folder")),
174174- TrackList::Special(_) => return Err(nerr!("Cannot rearrange tracks in special playlist")),
175175- };
176176 let mut start_ids = Vec::new();
177177 let mut moved_ids = Vec::new();
178178 let mut end_ids = Vec::new();
+5-5
native/src/playlists.rs
···4343 .trackLists
4444 .get_mut(&data.open_playlist_id)
4545 .ok_or(nerr!("Playlist ID not found"))?;
4646+ let playlist = match open_playlist {
4747+ TrackList::Playlist(playlist) => playlist,
4848+ TrackList::Folder(_) => return Err(nerr!("Cannot remove track from folder")),
4949+ TrackList::Special(_) => return Err(nerr!("Cannot remove track from special playlist")),
5050+ };
4651 if data.sort_key != "index" || data.sort_desc != true {
4752 return Err(nerr!("Cannot remove track when custom sorting is used"));
4853 }
4954 if data.filter != "" {
5055 return Err(nerr!("Cannot remove track when filter is used"));
5156 }
5252- let playlist = match open_playlist {
5353- TrackList::Playlist(playlist) => playlist,
5454- TrackList::Folder(_) => return Err(nerr!("Cannot remove track from folder")),
5555- TrackList::Special(_) => return Err(nerr!("Cannot remove track from special playlist")),
5656- };
5757 let mut new_list = Vec::new();
5858 let mut indexes_to_remove = indexes_to_remove.iter();
5959 let mut next_index = indexes_to_remove.next().map(|n| *n as usize);
-1
src/components/TrackList.svelte
···152152 function dragEndHandler() {
153153 dragging = false
154154 if (dragToIndex !== null) {
155155- console.log(indexes, dragToIndex)
156155 const newSelection = page.moveTracks(indexes, dragToIndex)
157156 for (let i = newSelection.from; i <= newSelection.to; i++) {
158157 selection.add(i)