/// <summary> /// Delete all user playlist /// </summary> public void DeleteAllUserPlaylist() { // Check if engine is play a song in a user playlist => stop and change current playlist to recently added if (Playlists != null) { if (Playlists.Contains(CurrentPlaylist)) { Stop(); CurrentPlaylist = AllSongs; } // Delete all user playlists for (int i = 0; i < Playlists.Count; i++) { if (Playlists[i].Prio == Playlist.Priority.User) { if (Playlists[i].Name == SelectedPlaylist.Name) { SelectedPlaylist = AllSongs; } Playlists.Remove(Playlists[i]); } } ViewSource.Refresh(); } }
private void SavePlaylistExecute() { if (Playlists == null) { MessageBox.Show("Error trying to save playlist", "Database access error"); } else if (!Playlists.Contains(NewPlaylistName) && !String.IsNullOrEmpty(NewPlaylistName)) { if (playlistInputMode == InputMode.Add) { DatabaseInterface.AddPlaylist(NewPlaylistName); } else if (playlistInputMode == InputMode.Rename) { DatabaseInterface.RenamePlaylist(oldPlaylistName, NewPlaylistName); } else if (playlistInputMode == InputMode.Save) { DatabaseInterface.AddPlaylist(NewPlaylistName); foreach (AudioFile file in Files) { DatabaseInterface.AddFileToPlaylist(NewPlaylistName, file.Path); } } RefreshPlaylistsList(); PlaylistInputControl = null; } else { PlaylistInputTextboxBackground = "LightCoral"; } }
public void AddPlaylist(IPlaylist playlist) { if (Playlists.Contains(playlist)) { return; } Playlists.Add(playlist); playlist.MediaAdded += OnPlaylistMediaAdded; }
public void RemovePlaylist(IPlaylist playlist) { if (!Playlists.Contains(playlist)) { return; } Playlists.Remove(playlist); DeletePlaylist(playlist); playlist.MediaAdded -= OnPlaylistMediaAdded; }
public void ReconfigurePlaylist(Playlist playlist) { if (!Playlists.Contains(playlist)) { return; } var newItem = Transform(playlist); var items = listView.Items.OfType <ListViewItem>().Where(curItem => curItem.Tag == newItem.Tag).ToArray(); var oldItem = items.FirstOrDefault(); if (oldItem == null) { return; } newItem.Selected = oldItem.Selected; // Replacing the item by inserting the new one and removing the old one // causes a stack overflow because it triggers a SelectedIndexChanged event, which then // calls this method, etc. So we must resort to copying the new values into the old subitems. oldItem.Text = newItem.Text; oldItem.Tag = newItem.Tag; oldItem.ToolTipText = newItem.ToolTipText; oldItem.Font = newItem.Font; oldItem.BackColor = newItem.BackColor; oldItem.ForeColor = newItem.ForeColor; var oldSubItems = oldItem.SubItems.OfType <ListViewItem.ListViewSubItem>().ToArray(); var newSubItems = newItem.SubItems.OfType <ListViewItem.ListViewSubItem>().ToArray(); for (var i = 0; i < oldSubItems.Length; i++) { oldSubItems[i].Text = newSubItems[i].Text; oldSubItems[i].Tag = newSubItems[i].Tag; oldSubItems[i].Font = newSubItems[i].Font; oldSubItems[i].BackColor = newSubItems[i].BackColor; oldSubItems[i].ForeColor = newSubItems[i].ForeColor; } }