From 3eb83d6110761ac8c8efae4baaa231be3bfa64e4 Mon Sep 17 00:00:00 2001 From: basisbit Date: Mon, 7 Sep 2015 00:11:32 +0000 Subject: * show CallStack on unhandled application error * do not show Top 5 Screen when there are no scores to show * first UThemes changes for duett and fixes for jukebox * first step of standardizing the function-keys in JukeBox: press r to randomize/mix the playlist or press j and start typing for song search git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@3131 b956fd51-792f-4845-bead-9b4dfca2ff2c --- src/screens/UScreenJukebox.pas | 123 ++++++++++++++++++++--------------------- 1 file changed, 59 insertions(+), 64 deletions(-) (limited to 'src/screens/UScreenJukebox.pas') diff --git a/src/screens/UScreenJukebox.pas b/src/screens/UScreenJukebox.pas index 8e4b7712..d282d979 100644 --- a/src/screens/UScreenJukebox.pas +++ b/src/screens/UScreenJukebox.pas @@ -116,7 +116,7 @@ type JukeboxTextTimeText: integer; JukeboxTextTimeDesc: integer; - //JukeboxTextSongText: integer; + JukeboxTextSongText: integer; //Button of Songtitle SongFinish: boolean; @@ -489,14 +489,14 @@ begin OrderMode := false; Button[JukeboxSongListOrder].SetSelect(false); try - //Button[JukeboxSongListOrder].Text[0].Text := Language.Translate('OPTION_VALUE_ARTIST'); /hackyhack + Button[JukeboxSongListOrder].Text[0].Text := Language.Translate('OPTION_VALUE_ARTIST'); finally end; end; end; - //Button[JukeboxFindSong].Text[0].Text := ''; /hackyhack + Button[JukeboxFindSong].Text[0].Text := ''; Button[JukeboxLyric].SetSelect(true); Button[JukeboxRandomSongList].SetSelect(false); @@ -610,6 +610,57 @@ begin Inc(fTimebarMode); Exit; end; + + // allow search for songs + Ord('J'): + begin + LastTick := SDL_GetTicks(); + FindSongList := not FindSongList; + if (Filter = '') then + begin + if (FindSongList) then + Button[JukeboxFindSong].Text[0].Text := ''; + end; + Button[JukeboxFindSong].SetSelect(FindSongList); + if FindSongList then + FilterSongList(Filter) + else + FilterSongList(''); + Exit; + end; + + //Randomixe Playlist + Ord('R'): + begin + if (SongListVisible) then + begin + LastTick := SDL_GetTicks(); + + Button[JukeboxRandomSongList].SetSelect(true); + Button[JukeboxSongListOrder].SetSelect(false); + + RandomMode := true; + OrderMode := false; + + for I := 0 to High(JukeboxVisibleSongs) * 2 do + begin + RValueI := RandomRange(0, High(JukeboxVisibleSongs) + 1); + RValueE := RandomRange(0, High(JukeboxVisibleSongs) + 1); + + tmp := JukeboxVisibleSongs[RValueI]; + JukeboxVisibleSongs[RValueI] := JukeboxVisibleSongs[RValueE]; + JukeboxVisibleSongs[RValueE] := tmp; + + if (RValueI = CurrentSongList) then + CurrentSongList := RValueE + else + begin + if (RValueE = CurrentSongList) then + CurrentSongList := RValueI; + end; + end; + end; + end; end; end; @@ -704,65 +755,6 @@ begin end; end; - SDLK_F: - begin - - if (SongListVisible) and (SDL_ModState = KMOD_LCTRL) then - begin - LastTick := SDL_GetTicks(); - - FindSongList := not FindSongList; - - if (Filter = '') then - begin - if (FindSongList) then - Button[JukeboxFindSong].Text[0].Text := '' - end; - - Button[JukeboxFindSong].SetSelect(FindSongList); - - if not (FindSongList) then - FilterSongList('') - else - FilterSongList(Filter); - - Exit; - end; - end; - - SDLK_R: - begin - - if (SongListVisible) and (SDL_ModState = KMOD_LCTRL) then - begin - LastTick := SDL_GetTicks(); - - Button[JukeboxRandomSongList].SetSelect(true); - Button[JukeboxSongListOrder].SetSelect(false); - - RandomMode := true; - OrderMode := false; - - for I := 0 to High(JukeboxVisibleSongs) * 2 do - begin - RValueI := RandomRange(0, High(JukeboxVisibleSongs) + 1); - RValueE := RandomRange(0, High(JukeboxVisibleSongs) + 1); - - tmp := JukeboxVisibleSongs[RValueI]; - JukeboxVisibleSongs[RValueI] := JukeboxVisibleSongs[RValueE]; - JukeboxVisibleSongs[RValueE] := tmp; - - if (RValueI = CurrentSongList) then - CurrentSongList := RValueE - else - begin - if (RValueE = CurrentSongList) then - CurrentSongList := RValueI; - end; - end; - end; - end; - SDLK_ESCAPE: begin if (SongListVisible) then @@ -1097,7 +1089,7 @@ begin JukeboxTextTimeText := AddText(Theme.Jukebox.TextTimeText); JukeboxTextTimeDesc := AddText(Theme.Jukebox.TextTimeDesc); -// JukeboxTextSongText := AddText(Theme.Jukebox.TextSongText); + JukeboxTextSongText := AddText(Theme.Jukebox.TextSongText); PosY := Theme.Jukebox.SongDescription.Y; for I := 0 to 9 do @@ -1531,7 +1523,7 @@ begin Text[JukeboxTextTimeText].Draw; Text[JukeboxTextTimeDesc].Draw; - // Text[JukeboxTextSongText].Draw; + Text[JukeboxTextSongText].Draw; // options desc Text[JukeboxTextOptionsSongPosition].Draw; @@ -1713,6 +1705,9 @@ begin Lyrics.AddLine(@Lines[0].Line[Lyrics.LineCounter]); end; + Text[JukeboxTextSongText].Visible := true; + Text[JukeboxTextSongText].Text := CurrentSong.Artist + ' - ' + CurrentSong.Title; + Max := 9; if (High(JukeboxVisibleSongs) < 9) then -- cgit v1.2.3