/// <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";
            }
        }
Beispiel #3
0
 public void AddPlaylist(IPlaylist playlist)
 {
     if (Playlists.Contains(playlist))
     {
         return;
     }
     Playlists.Add(playlist);
     playlist.MediaAdded += OnPlaylistMediaAdded;
 }
Beispiel #4
0
 public void RemovePlaylist(IPlaylist playlist)
 {
     if (!Playlists.Contains(playlist))
     {
         return;
     }
     Playlists.Remove(playlist);
     DeletePlaylist(playlist);
     playlist.MediaAdded -= OnPlaylistMediaAdded;
 }
Beispiel #5
0
        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;
            }
        }