Merge pull request #470 from Vocaluxe/SongScreen_KeyNavigation

Page UP/DOWN, HOME and END keys on Song screen (final implementation)
This commit is contained in:
daggeg authored and GitHub committed 2020-01-29 10:37:10 +01:00
commit 30d9c40fc6
4 files changed
+77 -37

No files matched your search

+3 -1
View File
@@ -142,7 +142,9 @@ Song screen
[CTRL] + [V] to sing all songs from a category
[NUM_1]..[NUM_6] to use a Joker for team 1..6
[A]..[Z] to jump to category/song title starting with that letters (multiple letters possible)
[PAGE UP] or [PAGE DOWN] if inside a category: Go up/down one category / if category view is disabled: Scroll one page up/down
[PAGE UP] or [PAGE DOWN] to scroll one page up/down
[CTRL] + [PAGE UP or DOWN] to go inside next or previous category while being in a category
[HOME] or [END] to scroll up to first song or down to last song
Name selection screen
[1]..[6] to activate player selection.
-32
View File
@@ -363,38 +363,6 @@ namespace Vocaluxe.Screens
_ShowHighscore();
}
break;
case Keys.PageUp:
if (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF)
{
int numSongsPerPage = (CConfig.SongMenu == ESongMenu.TR_CONFIG_TILE_BOARD ? 24 : 15);
if (keyEvent.Mod == EModifier.Ctrl)
_SongMenu.SetSelectedSong(0);
else
{
if ((_SongMenu.GetSelectedSongNr() - numSongsPerPage) <= 0)
_SongMenu.SetSelectedSong(0);
else
_SongMenu.SetSelectedSong(_SongMenu.GetSelectedSongNr() - numSongsPerPage);
}
}
break;
case Keys.PageDown:
if (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF)
{
int numSongsPerPage = (CConfig.SongMenu == ESongMenu.TR_CONFIG_TILE_BOARD ? 24 : 15);
if (keyEvent.Mod == EModifier.Ctrl)
_SongMenu.SetSelectedSong(CSongs.NumSongsVisible - 1);
else
{
if ((_SongMenu.GetSelectedSongNr() + numSongsPerPage) >= CSongs.NumSongsVisible)
_SongMenu.SetSelectedSong(CSongs.NumSongsVisible - 1);
else
_SongMenu.SetSelectedSong(_SongMenu.GetSelectedSongNr() + numSongsPerPage);
}
}
break;
}
if (!_SearchActive)
{
+36 -2
View File
@@ -344,19 +344,53 @@ namespace VocaluxeLib.Menu.SongMenu
break;
case Keys.PageUp:
if (catChangePossible)
if (catChangePossible && CBase.Songs.IsInCategory() && (keyEvent.Mod == EModifier.Ctrl || keyEvent.Mod == EModifier.Alt))
{
_PrevCategory();
keyEvent.Handled = true;
}
else if (moveAllowed)
{
if ((_SelectionNr - _ListLength) <= 0)
_SelectionNr = 0;
else
_SelectionNr = _SelectionNr - _ListLength;
keyEvent.Handled = true;
}
break;
case Keys.PageDown:
if (catChangePossible)
if (catChangePossible && CBase.Songs.IsInCategory() && (keyEvent.Mod == EModifier.Ctrl || keyEvent.Mod == EModifier.Alt))
{
_NextCategory();
keyEvent.Handled = true;
}
else if (moveAllowed)
{
int maxCount_PageDown = (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && !CBase.Songs.IsInCategory() ? CBase.Songs.GetNumCategories() : CBase.Songs.GetNumSongsVisible());
if ((_SelectionNr + _ListLength) >= maxCount_PageDown)
_SelectionNr = maxCount_PageDown - 1;
else
_SelectionNr = _SelectionNr + _ListLength;
keyEvent.Handled = true;
}
break;
case Keys.Home:
if (moveAllowed)
{
_SelectionNr = 0;
keyEvent.Handled = true;
}
break;
case Keys.End:
int maxCount_End = (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && !CBase.Songs.IsInCategory() ? CBase.Songs.GetNumCategories() : CBase.Songs.GetNumSongsVisible());
if (moveAllowed)
{
_SelectionNr = maxCount_End - 1;
keyEvent.Handled = true;
}
break;
case Keys.Left:
@@ -335,19 +335,55 @@ namespace VocaluxeLib.Menu.SongMenu
break;
case Keys.PageUp:
if (catChangePossible)
if (catChangePossible && CBase.Songs.IsInCategory() && (keyEvent.Mod == EModifier.Ctrl || keyEvent.Mod == EModifier.Alt))
{
_PrevCategory();
keyEvent.Handled = true;
}
else if (moveAllowed)
{
int numSongsPerPage = _NumH * _NumW;
if ((_SelectionNr - numSongsPerPage) <= 0)
_SelectionNr = 0;
else
_SelectionNr = _SelectionNr - numSongsPerPage;
keyEvent.Handled = true;
}
break;
case Keys.PageDown:
if (catChangePossible)
if (catChangePossible && CBase.Songs.IsInCategory() && (keyEvent.Mod == EModifier.Ctrl || keyEvent.Mod == EModifier.Alt))
{
_NextCategory();
keyEvent.Handled = true;
}
else if (moveAllowed)
{
int numSongsPerPage = _NumH * _NumW;
int maxCount_PageDown = (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && !CBase.Songs.IsInCategory() ? CBase.Songs.GetNumCategories() : CBase.Songs.GetNumSongsVisible());
if ((_SelectionNr + numSongsPerPage) >= maxCount_PageDown)
_SelectionNr = maxCount_PageDown - 1;
else
_SelectionNr = _SelectionNr + numSongsPerPage;
keyEvent.Handled = true;
}
break;
case Keys.Home:
if (moveAllowed)
{
_SelectionNr = 0;
keyEvent.Handled = true;
}
break;
case Keys.End:
int maxCount_End = (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && !CBase.Songs.IsInCategory() ? CBase.Songs.GetNumCategories() : CBase.Songs.GetNumSongsVisible());
if (moveAllowed)
{
_SelectionNr = maxCount_End - 1;
keyEvent.Handled = true;
}
break;
case Keys.Left: