diff --git a/Vocaluxe/Base/CPlaylists.cs b/Vocaluxe/Base/CPlaylists.cs index c9babd16..6cb7c7f7 100644 --- a/Vocaluxe/Base/CPlaylists.cs +++ b/Vocaluxe/Base/CPlaylists.cs @@ -80,13 +80,13 @@ namespace Vocaluxe.Base try { File.Delete(_Playlists[PlaylistID].PlaylistFile); - _Playlists.RemoveAt(PlaylistID); } catch (Exception) { CLog.LogError("Can't delete Profile File " + _Playlists[PlaylistID].PlaylistFile + ".xml"); } } + _Playlists.RemoveAt(PlaylistID); } public static void SavePlaylist(int PlaylistID) diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index 2698fa09..7f0dcd0f 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -277,6 +277,7 @@ namespace Vocaluxe.Screens } else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected) { + ToggleSongOptions(ESongOptionsView.None); OpenAndAddPlaylistAction(); } else if (Buttons[htButtons(ButtonOptionsRandom)].Selected) @@ -303,6 +304,7 @@ namespace Vocaluxe.Screens } else if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected) { + ToggleSongOptions(ESongOptionsView.None); OpenPlaylistAction(); } break; @@ -365,7 +367,11 @@ namespace Vocaluxe.Screens if (Playlists[htPlaylists(Playlist)].Visible && _PlaylistActive) { if (Playlists[htPlaylists(Playlist)].HandleMouse(MouseEvent)) + { + if (CPlaylists.NumPlaylists != SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].NumValues) + UpdatePlaylistNames(); return true; + } } @@ -437,6 +443,7 @@ namespace Vocaluxe.Screens if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected) { + ToggleSongOptions(ESongOptionsView.None); OpenAndAddPlaylistAction(); return true; } @@ -475,6 +482,7 @@ namespace Vocaluxe.Screens if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected) { + ToggleSongOptions(ESongOptionsView.None); OpenPlaylistAction(); return true; } @@ -900,15 +908,13 @@ namespace Vocaluxe.Screens //Open playlist OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID); - Playlists[htPlaylists(Playlist)].ScrollToBottom(); } - ToggleSongOptions(ESongOptionsView.None); } private void OpenAndAddPlaylistAction() { - //Open a playlist and add song - if (Playlists[htPlaylists(Playlist)].ActivePlaylistID != (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1)) + //Open an existing playlist and add song + if (Playlists[htPlaylists(Playlist)].ActivePlaylistID != (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1) && (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1) != -1) { //Check selected game-mode EGameMode gm; @@ -921,18 +927,19 @@ namespace Vocaluxe.Screens gm = GameModes.EGameMode.TR_GAMEMODE_NORMAL; //Check if Playlist really exists - if (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1 < 0) - Playlists[htPlaylists(Playlist)].ActivePlaylistID = CPlaylists.NewPlaylist(); - else + if (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1 >= 0) + { Playlists[htPlaylists(Playlist)].ActivePlaylistID = SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1; - - //Add song to playlist - CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID, gm); - - //Open playlist - OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID); - SetSelectSlidePlaylistToCurrentPlaylist(); + //Add song to playlist + CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID, gm); + + //Open playlist + OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID); + + SetSelectSlidePlaylistToCurrentPlaylist(); + Playlists[htPlaylists(Playlist)].ScrollToBottom(); + } } //Create a new playlist and add song else if ((SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1) == -1) @@ -958,6 +965,7 @@ namespace Vocaluxe.Screens //Add new playlist to select-slide SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].AddValue(CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].PlaylistName); + SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].AddValue(CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].PlaylistName); SetSelectSlidePlaylistToCurrentPlaylist(); @@ -978,12 +986,14 @@ namespace Vocaluxe.Screens Playlists[htPlaylists(Playlist)].UpdatePlaylist(); Playlists[htPlaylists(Playlist)].ScrollToBottom(); } - ToggleSongOptions(ESongOptionsView.Song); } private void SetSelectSlidePlaylistToCurrentPlaylist() { - SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection = Playlists[htPlaylists(Playlist)].ActivePlaylistID + 1; + if (Playlists[htPlaylists(Playlist)].ActivePlaylistID > -1) + SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection = Playlists[htPlaylists(Playlist)].ActivePlaylistID + 1; + else + SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection = 0; } } }