Fix categories not showing on start
This commit is contained in:
1 parent
62675821ed
commit
09d36ccf60
1 file changed
+17
-15
@@ -57,8 +57,8 @@ namespace VocaluxeLib.Menu.SongMenu
|
|||||||
private int _Offset;
|
private int _Offset;
|
||||||
|
|
||||||
private float _Length = -1f;
|
private float _Length = -1f;
|
||||||
private int _LastKnownNumSongs;
|
private int _LastKnownElements;
|
||||||
private int _LastKnownCategory = -1;
|
private int _LastKnownCategory;
|
||||||
|
|
||||||
private bool _MouseWasInRect;
|
private bool _MouseWasInRect;
|
||||||
|
|
||||||
@@ -263,17 +263,18 @@ namespace VocaluxeLib.Menu.SongMenu
|
|||||||
|
|
||||||
public override void OnShow()
|
public override void OnShow()
|
||||||
{
|
{
|
||||||
if (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF && CBase.Songs.GetNumCategories() > 0 && !CBase.Songs.IsInCategory())
|
_LastKnownElements = -1; //Force refresh of list
|
||||||
_EnterCategory(0);
|
if (!CBase.Songs.IsInCategory())
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (CBase.Songs.IsInCategory())
|
if ((CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF && CBase.Songs.GetNumCategories() > 0) || CBase.Songs.GetNumCategories() == 1)
|
||||||
SetSelectedSong(_SelectionNr < 0 ? 0 : _SelectionNr);
|
_EnterCategory(0);
|
||||||
else
|
|
||||||
SetSelectedCategory(_SelectionNr < 0 ? 0 : _SelectionNr);
|
|
||||||
}
|
}
|
||||||
|
if (CBase.Songs.IsInCategory())
|
||||||
|
SetSelectedSong(_SelectionNr < 0 ? 0 : _SelectionNr);
|
||||||
|
else
|
||||||
|
SetSelectedCategory(_SelectionNr < 0 ? 0 : _SelectionNr);
|
||||||
_PreviewNr = _SelectionNr;
|
_PreviewNr = _SelectionNr;
|
||||||
_AfterCategoryChange();
|
_UpdateListIfRequired();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool HandleInput(ref SKeyEvent keyEvent, SScreenSongOptions options)
|
public override bool HandleInput(ref SKeyEvent keyEvent, SScreenSongOptions options)
|
||||||
@@ -499,7 +500,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
|||||||
|
|
||||||
_PreviewNr = 0;
|
_PreviewNr = 0;
|
||||||
SetSelectedSong(0);
|
SetSelectedSong(0);
|
||||||
_AfterCategoryChange();
|
_UpdateListIfRequired();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void _LeaveCategory()
|
protected override void _LeaveCategory()
|
||||||
@@ -508,7 +509,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
|||||||
|
|
||||||
_PreviewNr = 0;
|
_PreviewNr = 0;
|
||||||
SetSelectedCategory(0);
|
SetSelectedCategory(0);
|
||||||
_AfterCategoryChange();
|
_UpdateListIfRequired();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _NextCategory()
|
private void _NextCategory()
|
||||||
@@ -529,13 +530,14 @@ namespace VocaluxeLib.Menu.SongMenu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void _AfterCategoryChange()
|
private void _UpdateListIfRequired()
|
||||||
{
|
{
|
||||||
if ((_LastKnownNumSongs == CBase.Songs.GetNumSongsVisible()) && (_LastKnownCategory == CBase.Songs.GetCurrentCategoryIndex()))
|
int curElements = CBase.Songs.IsInCategory() ? CBase.Songs.GetNumSongsVisible() : CBase.Songs.GetNumCategories();
|
||||||
|
if ((_LastKnownElements == curElements) && (_LastKnownCategory == CBase.Songs.GetCurrentCategoryIndex()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_LastKnownCategory = CBase.Songs.GetCurrentCategoryIndex();
|
_LastKnownCategory = CBase.Songs.GetCurrentCategoryIndex();
|
||||||
_LastKnownNumSongs = CBase.Songs.GetNumSongsVisible();
|
_LastKnownElements = curElements;
|
||||||
CBase.Songs.UpdateRandomSongList();
|
CBase.Songs.UpdateRandomSongList();
|
||||||
_UpdateList(true);
|
_UpdateList(true);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user