From 40bc4d62a6d79fcfb2494491b9bfb3851561a4dc Mon Sep 17 00:00:00 2001 From: Stefan Date: Sun, 12 Jan 2020 14:12:12 +0100 Subject: [PATCH] Update CScreenSong.cs Wrong changes was included --- Vocaluxe/Screens/CScreenSong.cs | 71 +++++++++++++++++---------------- 1 file changed, 36 insertions(+), 35 deletions(-) diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs index b14fe76b..802643b5 100644 --- a/Vocaluxe/Screens/CScreenSong.cs +++ b/Vocaluxe/Screens/CScreenSong.cs @@ -80,9 +80,6 @@ namespace Vocaluxe.Screens private string _SearchText = String.Empty; private bool _SearchActive; - private int _JumpTo_lastCharTime = 0; - private String _JumpTo_lastSearchString = ""; - private readonly List _ButtonsJoker = new List(); private readonly List _TextsPlayer = new List(); private ESongOptionsView _CurSongOptionsView; @@ -288,6 +285,21 @@ namespace Vocaluxe.Screens else if (!_Sso.Selection.PartyMode) _SearchActive = true; break; + + case Keys.V: + if (keyEvent.Mod == EModifier.Ctrl && !_Sso.Selection.PartyMode) + _StartRandomVisibleSongs(); + break; + + case Keys.R: + if (keyEvent.Mod == EModifier.Ctrl && !_Sso.Selection.RandomOnly) + _SelectNextRandom(-1); + break; + + case Keys.S: + if (keyEvent.Mod == EModifier.Ctrl && CSongs.NumSongsVisible > 0 && !_Sso.Selection.PartyMode) + _StartMedleySong(_SongMenu.GetPreviewSongNr()); + break; } if (!_SearchActive) { @@ -302,20 +314,6 @@ namespace Vocaluxe.Screens if (keyEvent.Mod == EModifier.Ctrl && !_Sso.Selection.PartyMode) _StartRandomAllSongs(); break; - case Keys.V: - if (keyEvent.Mod == EModifier.Ctrl && !_Sso.Selection.PartyMode) - _StartRandomVisibleSongs(); - break; - - case Keys.R: - if (keyEvent.Mod == EModifier.Ctrl && !_Sso.Selection.RandomOnly) - _SelectNextRandom(-1); - break; - - case Keys.S: - if (keyEvent.Mod == EModifier.Ctrl && CSongs.NumSongsVisible > 0 && !_Sso.Selection.PartyMode) - _StartMedleySong(_SongMenu.GetPreviewSongNr()); - break; case Keys.F: if (keyEvent.Mod == EModifier.Ctrl && !_Sso.Selection.PartyMode) @@ -1057,13 +1055,6 @@ namespace Vocaluxe.Screens private void _JumpTo(char letter) { - // Stefan1200: Add all letters from a key press within one second to a search string. Clear search string, if last key press is older than one second. - String searchString; - if (Environment.TickCount - _JumpTo_lastCharTime < 1000) - searchString = _JumpTo_lastSearchString + letter.ToString(); - else - searchString = letter.ToString(); - int start = 0; //int curSelected = CSongs.IsInCategory ? _SongMenu.GetSelectedSongNr() : _SongMenu.GetSelectedCategory(); bool firstLevel = CConfig.Config.Game.Tabs == EOffOn.TR_CONFIG_OFF && CSongs.IsInCategory; @@ -1083,20 +1074,28 @@ namespace Vocaluxe.Screens { case ESongSorting.TR_CONFIG_ARTIST: case ESongSorting.TR_CONFIG_ARTIST_LETTER: - visibleID = _FindIndex(songs, start, element => element.Artist.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)); + if (curSelected >= 0 && curSelected < ct - 1 && songs[curSelected].Artist.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)) + start = curSelected + 1; + visibleID = _FindIndex(songs, start, element => element.Artist.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)); break; case ESongSorting.TR_CONFIG_YEAR: case ESongSorting.TR_CONFIG_DECADE: - visibleID = _FindIndex(songs, start, element => element.Year.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)); + if (curSelected >= 0 && curSelected < ct - 1 && songs[curSelected].Year.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)) + start = curSelected + 1; + visibleID = _FindIndex(songs, start, element => element.Year.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)); break; case ESongSorting.TR_CONFIG_TITLE_LETTER: - visibleID = _FindIndex(songs, start, element => element.Title.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)); + if (curSelected >= 0 && curSelected < ct - 1 && songs[curSelected].Title.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)) + start = curSelected + 1; + visibleID = _FindIndex(songs, start, element => element.Title.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)); break; case ESongSorting.TR_CONFIG_FOLDER: - visibleID = _FindIndex(songs, start, element => element.Folder.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)); + if (curSelected >= 0 && curSelected < ct - 1 && songs[curSelected].Folder.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)) + start = curSelected + 1; + visibleID = _FindIndex(songs, start, element => element.Folder.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)); break; } if (visibleID > -1) @@ -1111,12 +1110,16 @@ namespace Vocaluxe.Screens { case ESongSorting.TR_CONFIG_FOLDER: case ESongSorting.TR_CONFIG_TITLE_LETTER: - visibleID = _FindIndex(songs, start, element => element.Artist.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)); + if (curSelected >= 0 && curSelected < ct - 1 && songs[curSelected].Artist.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)) + start = curSelected + 1; + visibleID = _FindIndex(songs, start, element => element.Artist.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)); break; case ESongSorting.TR_CONFIG_ARTIST: case ESongSorting.TR_CONFIG_ARTIST_LETTER: - visibleID = _FindIndex(songs, start, element => element.Title.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)); + if (curSelected >= 0 && curSelected < ct - 1 && songs[curSelected].Title.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)) + start = curSelected + 1; + visibleID = _FindIndex(songs, start, element => element.Title.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)); break; } if (visibleID > -1) @@ -1126,14 +1129,12 @@ namespace Vocaluxe.Screens { ReadOnlyCollection categories = CSongs.Categories; //int ct = categories.Count; - int visibleID = _FindIndex(categories, start, element => element.Name.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)); + if (curSelected >= 0 && curSelected < ct - 1 && categories[curSelected].Name.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)) + start = curSelected + 1; + int visibleID = _FindIndex(categories, start, element => element.Name.StartsWith(letter.ToString(), StringComparison.OrdinalIgnoreCase)); if (visibleID > -1) _SongMenu.SetSelectedCategory(visibleID); } - - // Stefan1200: Remember search string and current TickCount in class variables. - _JumpTo_lastCharTime = Environment.TickCount; - _JumpTo_lastSearchString = searchString; } private void _ApplyNewSearchFilter(string newFilterString)