Merge branch 'develop' into relative-song-paths
This commit is contained in:
8 files changed
+175
-52
No files matched your search
+4
-1
@@ -140,9 +140,12 @@ Song screen
|
||||
[CTRL] + [A] to sing all songs
|
||||
[CTRL] + [S] to sing current song in medley version
|
||||
[CTRL] + [V] to sing all songs from a category
|
||||
[CTRL] + [L] to filter the song list to the current displayed playlist. Press again to remove this filter.
|
||||
[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.
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
ScreenSong
|
||||
|
||||
++++++++++
|
||||
Version 9:
|
||||
|
||||
Add:
|
||||
<TextSongYear>
|
||||
|
||||
Changed values at:
|
||||
<TextSongLength>
|
||||
|
||||
++++++++++
|
||||
Version 8:
|
||||
|
||||
Add:
|
||||
<ButtonOptionsHighscore> to SongMenu
|
||||
<TextShortInfoTop>
|
||||
<StaticShortInfoTop>
|
||||
|
||||
++++++++++
|
||||
Version 7:
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Screen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<Informations>
|
||||
<ScreenName>ScreenSong</ScreenName>
|
||||
<ScreenVersion>8</ScreenVersion>
|
||||
<ScreenVersion>9</ScreenVersion>
|
||||
</Informations>
|
||||
<Backgrounds>
|
||||
<Background Name="Background1">
|
||||
@@ -905,19 +905,33 @@
|
||||
<Text />
|
||||
</TextTitle>
|
||||
<TextSongLength Name="TextSongLength">
|
||||
<X>222</X>
|
||||
<X>391</X>
|
||||
<Y>490</Y>
|
||||
<Z>-1.01</Z>
|
||||
<H>28</H>
|
||||
<MaxW>340</MaxW>
|
||||
<MaxW>100</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<Align>Right</Align>
|
||||
<ResizeAlign>Top</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</TextSongLength>
|
||||
<TextSongYear Name="TextSongYear">
|
||||
<X>52</X>
|
||||
<Y>490</Y>
|
||||
<Z>-1.01</Z>
|
||||
<H>28</H>
|
||||
<MaxW>100</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Top</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</TextSongYear>
|
||||
<StaticCoverBig Name="StaticCoverBig">
|
||||
<Skin />
|
||||
<Color Name="Visible" />
|
||||
@@ -1032,19 +1046,33 @@
|
||||
<Text />
|
||||
</TextTitle>
|
||||
<TextSongLength Name="TextSongLength">
|
||||
<X>222</X>
|
||||
<X>391</X>
|
||||
<Y>490</Y>
|
||||
<Z>-1.01</Z>
|
||||
<H>28</H>
|
||||
<MaxW>340</MaxW>
|
||||
<MaxW>100</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Center</Align>
|
||||
<Align>Right</Align>
|
||||
<ResizeAlign>Top</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</TextSongLength>
|
||||
<TextSongYear Name="TextSongYear">
|
||||
<X>52</X>
|
||||
<Y>490</Y>
|
||||
<Z>-1.01</Z>
|
||||
<H>28</H>
|
||||
<MaxW>100</MaxW>
|
||||
<Color Name="TextColor" />
|
||||
<SelColor Name="TextSelColor" />
|
||||
<Align>Left</Align>
|
||||
<ResizeAlign>Top</ResizeAlign>
|
||||
<Style>Bold</Style>
|
||||
<Font>Outline</Font>
|
||||
<Text />
|
||||
</TextSongYear>
|
||||
<StaticCoverBig Name="StaticCoverBig">
|
||||
<Skin />
|
||||
<Color Name="Visible" />
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace Vocaluxe.Screens
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
protected override int _ScreenVersion
|
||||
{
|
||||
get { return 8; }
|
||||
get { return 9; }
|
||||
}
|
||||
|
||||
private const string _TextCategory = "TextCategory";
|
||||
@@ -364,35 +364,10 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.PageUp:
|
||||
if (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF)
|
||||
case Keys.L:
|
||||
if (keyEvent.Mod == EModifier.Ctrl)
|
||||
{
|
||||
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);
|
||||
}
|
||||
_TogglePlaylistFilter();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -401,7 +376,7 @@ namespace Vocaluxe.Screens
|
||||
switch (keyEvent.Key)
|
||||
{
|
||||
case Keys.Space:
|
||||
if (!_Sso.Selection.PartyMode)
|
||||
if (!_Sso.Selection.PartyMode && !_Playlist.isPlaylistNameEditMode())
|
||||
_ToggleSongOptions(ESongOptionsView.General);
|
||||
break;
|
||||
|
||||
@@ -901,9 +876,6 @@ namespace Vocaluxe.Screens
|
||||
CParty.OnSongChange(_SelectedSongID, ref _Sso);
|
||||
}
|
||||
|
||||
_Sso = CParty.GetSongSelectionOptions();
|
||||
|
||||
|
||||
if (_Sso.Selection.PartyMode)
|
||||
{
|
||||
CSongs.Sort(_Sso.Sorting.SongSorting, _Sso.Sorting.Tabs, _Sso.Sorting.IgnoreArticles, _Sso.Sorting.SearchString, _Sso.Sorting.DuetOptions, _Sso.Sorting.FilterPlaylistID);
|
||||
@@ -1234,7 +1206,7 @@ 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));
|
||||
visibleID = _FindIndex(songs, start, element => (_Sso.Sorting.IgnoreArticles == EOffOn.TR_CONFIG_ON ? element.ArtistSorting.StartsWith(searchString, StringComparison.OrdinalIgnoreCase) : element.Artist.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)));
|
||||
break;
|
||||
|
||||
case ESongSorting.TR_CONFIG_YEAR:
|
||||
@@ -1243,7 +1215,7 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case ESongSorting.TR_CONFIG_TITLE_LETTER:
|
||||
visibleID = _FindIndex(songs, start, element => element.Title.StartsWith(searchString, StringComparison.OrdinalIgnoreCase));
|
||||
visibleID = _FindIndex(songs, start, element => (_Sso.Sorting.IgnoreArticles == EOffOn.TR_CONFIG_ON ? element.TitleSorting.StartsWith(searchString, StringComparison.OrdinalIgnoreCase) : element.Title.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)));
|
||||
break;
|
||||
|
||||
case ESongSorting.TR_CONFIG_FOLDER:
|
||||
@@ -1261,12 +1233,12 @@ 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));
|
||||
visibleID = _FindIndex(songs, start, element => (_Sso.Sorting.IgnoreArticles == EOffOn.TR_CONFIG_ON ? element.ArtistSorting.StartsWith(searchString, StringComparison.OrdinalIgnoreCase) : element.Artist.StartsWith(searchString, 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));
|
||||
visibleID = _FindIndex(songs, start, element => (_Sso.Sorting.IgnoreArticles == EOffOn.TR_CONFIG_ON ? element.TitleSorting.StartsWith(searchString, StringComparison.OrdinalIgnoreCase) : element.Title.StartsWith(searchString, StringComparison.OrdinalIgnoreCase)));
|
||||
break;
|
||||
}
|
||||
if (visibleID > -1)
|
||||
@@ -1285,6 +1257,22 @@ namespace Vocaluxe.Screens
|
||||
_JumpTo_lastSearchString = searchString;
|
||||
}
|
||||
|
||||
public void _TogglePlaylistFilter()
|
||||
{
|
||||
if (_Sso.Sorting.FilterPlaylistID == _Playlist.ActivePlaylistID)
|
||||
{
|
||||
if (_Playlist.ActivePlaylistID == -1)
|
||||
return;
|
||||
|
||||
_Sso.Sorting.FilterPlaylistID = -1;
|
||||
}
|
||||
else
|
||||
_Sso.Sorting.FilterPlaylistID = _Playlist.ActivePlaylistID;
|
||||
|
||||
CSongs.Sort(_Sso.Sorting.SongSorting, _Sso.Sorting.Tabs, _Sso.Sorting.IgnoreArticles, _Sso.Sorting.SearchString, _Sso.Sorting.DuetOptions, _Sso.Sorting.FilterPlaylistID);
|
||||
_SongMenu.OnShow();
|
||||
}
|
||||
|
||||
private void _ApplyNewSearchFilter(string newFilterString)
|
||||
{
|
||||
CParty.SetSearchString(newFilterString, _SearchActive);
|
||||
|
||||
@@ -972,6 +972,11 @@ namespace VocaluxeLib.Menu
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool isPlaylistNameEditMode()
|
||||
{
|
||||
return _EditMode == EEditMode.PlaylistName;
|
||||
}
|
||||
|
||||
private void _PrepareList()
|
||||
{
|
||||
_PlaylistElements.Clear();
|
||||
@@ -1197,4 +1202,4 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
#endregion ThemeEdit
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public SThemeText TextArtist;
|
||||
public SThemeText TextTitle;
|
||||
public SThemeText TextSongLength;
|
||||
public SThemeText TextSongYear;
|
||||
|
||||
public SThemeStatic StaticCoverBig;
|
||||
public SThemeStatic StaticTextBG;
|
||||
@@ -111,6 +112,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public SThemeText TextArtist;
|
||||
public SThemeText TextTitle;
|
||||
public SThemeText TextSongLength;
|
||||
public SThemeText TextSongYear;
|
||||
|
||||
public SThemeStatic StaticCoverBig;
|
||||
public SThemeStatic StaticTextBG;
|
||||
|
||||
@@ -43,6 +43,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
private readonly CText _Artist;
|
||||
private readonly CText _Title;
|
||||
private readonly CText _SongLength;
|
||||
private readonly CText _SongYear;
|
||||
|
||||
private float _SpaceW;
|
||||
private float _SpaceH;
|
||||
@@ -118,19 +119,21 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_Artist = new CText(_Theme.SongMenuList.TextArtist, _PartyModeID);
|
||||
_Title = new CText(_Theme.SongMenuList.TextTitle, _PartyModeID);
|
||||
_SongLength = new CText(_Theme.SongMenuList.TextSongLength, _PartyModeID);
|
||||
_SongYear = new CText(_Theme.SongMenuList.TextSongYear, _PartyModeID);
|
||||
_CoverBig = new CStatic(_Theme.SongMenuList.StaticCoverBig, _PartyModeID);
|
||||
_TextBG = new CStatic(_Theme.SongMenuList.StaticTextBG, _PartyModeID);
|
||||
_DuetIcon = new CStatic(_Theme.SongMenuList.StaticDuetIcon, _PartyModeID);
|
||||
_VideoIcon = new CStatic(_Theme.SongMenuList.StaticVideoIcon, _PartyModeID);
|
||||
_MedleyCalcIcon = new CStatic(_Theme.SongMenuList.StaticMedleyCalcIcon, _PartyModeID);
|
||||
_MedleyTagIcon = new CStatic(_Theme.SongMenuList.StaticMedleyTagIcon, _PartyModeID);
|
||||
_SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _DuetIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon});
|
||||
_SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _SongYear, _DuetIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon});
|
||||
}
|
||||
|
||||
private void _ReadSubTheme()
|
||||
{
|
||||
_Theme.SongMenuList.TextArtist = (SThemeText)_Artist.GetTheme();
|
||||
_Theme.SongMenuList.TextSongLength = (SThemeText)_SongLength.GetTheme();
|
||||
_Theme.SongMenuList.TextSongYear = (SThemeText)_SongYear.GetTheme();
|
||||
_Theme.SongMenuList.TextTitle = (SThemeText)_Title.GetTheme();
|
||||
_Theme.SongMenuList.StaticCoverBig = (SThemeStatic)_CoverBig.GetTheme();
|
||||
_Theme.SongMenuList.StaticDuetIcon = (SThemeStatic)_DuetIcon.GetTheme();
|
||||
@@ -217,6 +220,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_Artist.Text = String.Empty;
|
||||
_Title.Text = String.Empty;
|
||||
_SongLength.Text = String.Empty;
|
||||
_SongYear.Text = String.Empty;
|
||||
_DuetIcon.Visible = false;
|
||||
_VideoIcon.Visible = false;
|
||||
_MedleyCalcIcon.Visible = false;
|
||||
@@ -245,6 +249,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_CoverBig.Texture = song.CoverTextureBig;
|
||||
_Artist.Text = song.Artist;
|
||||
_Title.Text = song.Title;
|
||||
_SongYear.Text = song.Year;
|
||||
_DuetIcon.Visible = song.IsDuet;
|
||||
_VideoIcon.Visible = song.VideoFileName != "";
|
||||
_MedleyCalcIcon.Visible = song.Medley.Source == EDataSource.Calculated;
|
||||
@@ -344,19 +349,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:
|
||||
|
||||
@@ -42,6 +42,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
private CText _Artist;
|
||||
private CText _Title;
|
||||
private CText _SongLength;
|
||||
private CText _SongYear;
|
||||
|
||||
private int _NumW;
|
||||
private int _NumH;
|
||||
@@ -113,13 +114,14 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_Artist = new CText(_Theme.SongMenuTileBoard.TextArtist, _PartyModeID);
|
||||
_Title = new CText(_Theme.SongMenuTileBoard.TextTitle, _PartyModeID);
|
||||
_SongLength = new CText(_Theme.SongMenuTileBoard.TextSongLength, _PartyModeID);
|
||||
_SongYear = new CText(_Theme.SongMenuTileBoard.TextSongYear, _PartyModeID);
|
||||
_CoverBig = new CStatic(_Theme.SongMenuTileBoard.StaticCoverBig, _PartyModeID);
|
||||
_TextBG = new CStatic(_Theme.SongMenuTileBoard.StaticTextBG, _PartyModeID);
|
||||
_DuetIcon = new CStatic(_Theme.SongMenuTileBoard.StaticDuetIcon, _PartyModeID);
|
||||
_VideoIcon = new CStatic(_Theme.SongMenuTileBoard.StaticVideoIcon, _PartyModeID);
|
||||
_MedleyCalcIcon = new CStatic(_Theme.SongMenuTileBoard.StaticMedleyCalcIcon, _PartyModeID);
|
||||
_MedleyTagIcon = new CStatic(_Theme.SongMenuTileBoard.StaticMedleyTagIcon, _PartyModeID);
|
||||
_SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _DuetIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon});
|
||||
_SubElements.AddRange(new IMenuElement[] {_Artist, _Title, _SongLength, _SongYear, _DuetIcon, _VideoIcon, _MedleyCalcIcon, _MedleyTagIcon});
|
||||
}
|
||||
|
||||
private void _UpdateTileSelection()
|
||||
@@ -135,6 +137,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
_Theme.SongMenuTileBoard.TextArtist = (SThemeText)_Artist.GetTheme();
|
||||
_Theme.SongMenuTileBoard.TextSongLength = (SThemeText)_SongLength.GetTheme();
|
||||
_Theme.SongMenuTileBoard.TextSongYear = (SThemeText)_SongYear.GetTheme();
|
||||
_Theme.SongMenuTileBoard.TextTitle = (SThemeText)_Title.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticCoverBig = (SThemeStatic)_CoverBig.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticDuetIcon = (SThemeStatic)_DuetIcon.GetTheme();
|
||||
@@ -208,6 +211,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_Artist.Text = String.Empty;
|
||||
_Title.Text = String.Empty;
|
||||
_SongLength.Text = String.Empty;
|
||||
_SongYear.Text = String.Empty;
|
||||
_DuetIcon.Visible = false;
|
||||
_VideoIcon.Visible = false;
|
||||
_MedleyCalcIcon.Visible = false;
|
||||
@@ -236,6 +240,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_CoverBig.Texture = song.CoverTextureBig;
|
||||
_Artist.Text = song.Artist;
|
||||
_Title.Text = song.Title;
|
||||
_SongYear.Text = song.Year;
|
||||
_DuetIcon.Visible = song.IsDuet;
|
||||
_VideoIcon.Visible = song.VideoFileName != "";
|
||||
_MedleyCalcIcon.Visible = song.Medley.Source == EDataSource.Calculated;
|
||||
@@ -335,19 +340,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:
|
||||
|
||||
Reference in new issue
Block a user