Add back buttons and random for Favorite songs folder, since the methods for those were changed I will need to add the global random button back through
This commit is contained in:
parent
74ea1b8baa
commit
1434679221
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
@ -25,12 +26,91 @@ namespace TJAPlayer3
|
||||
|
||||
#region [Extra methods]
|
||||
|
||||
// Generate a back button
|
||||
public static C曲リストノード tGenerateBackButton(C曲リストノード parent, string path = "/", List<string> listStrBoxDef = null)
|
||||
{
|
||||
C曲リストノード itemBack = new C曲リストノード();
|
||||
itemBack.eノード種別 = C曲リストノード.Eノード種別.BACKBOX;
|
||||
|
||||
|
||||
// とじる
|
||||
itemBack.strタイトル = CLangManager.LangInstance.GetString(200) + " (" + path + ")";
|
||||
|
||||
itemBack.BackColor = ColorTranslator.FromHtml("#513009");
|
||||
itemBack.BoxColor = Color.White;
|
||||
|
||||
itemBack.BgColor = parent.BgColor;
|
||||
itemBack.isChangedBgColor = parent.isChangedBgColor;
|
||||
itemBack.BgType = parent.BgType;
|
||||
itemBack.isChangedBgType = parent.isChangedBgType;
|
||||
|
||||
itemBack.strジャンル = parent.strジャンル;
|
||||
itemBack.nスコア数 = 1;
|
||||
itemBack.r親ノード = parent;
|
||||
itemBack.strSkinPath = (parent.r親ノード == null) ?
|
||||
"" : parent.r親ノード.strSkinPath;
|
||||
|
||||
// I guess this is used to count the number of box.def instances and only at startup, which makes using it here pretty weird
|
||||
if (listStrBoxDef != null && itemBack.strSkinPath != "" && !listStrBoxDef.Contains(itemBack.strSkinPath))
|
||||
{
|
||||
listStrBoxDef.Add(itemBack.strSkinPath);
|
||||
}
|
||||
|
||||
itemBack.strBreadcrumbs = (itemBack.r親ノード == null) ?
|
||||
itemBack.strタイトル : itemBack.r親ノード.strBreadcrumbs + " > " + itemBack.strタイトル;
|
||||
|
||||
itemBack.arスコア[0] = new Cスコア();
|
||||
itemBack.arスコア[0].ファイル情報.フォルダの絶対パス = "";
|
||||
itemBack.arスコア[0].譜面情報.タイトル = itemBack.strタイトル;
|
||||
itemBack.arスコア[0].譜面情報.コメント = "";
|
||||
|
||||
return (itemBack);
|
||||
}
|
||||
|
||||
public static C曲リストノード tGenerateRandomButton(C曲リストノード parent, string path = "/")
|
||||
{
|
||||
C曲リストノード itemRandom = new C曲リストノード();
|
||||
itemRandom.eノード種別 = C曲リストノード.Eノード種別.RANDOM;
|
||||
|
||||
itemRandom.strタイトル = CLangManager.LangInstance.GetString(203) + " (" + path + ")"; ;
|
||||
|
||||
itemRandom.nスコア数 = (int)Difficulty.Total;
|
||||
itemRandom.r親ノード = parent;
|
||||
|
||||
itemRandom.strBreadcrumbs = (itemRandom.r親ノード == null) ?
|
||||
itemRandom.strタイトル : itemRandom.r親ノード.strBreadcrumbs + " > " + itemRandom.strタイトル;
|
||||
|
||||
itemRandom.arスコア[0] = new Cスコア();
|
||||
|
||||
return itemRandom;
|
||||
}
|
||||
|
||||
// Reset the position of all back buttons, also adds a random button at the end
|
||||
public static List<C曲リストノード> tReinsertBackButtons(C曲リストノード parent, List<C曲リストノード> songList, string path = "/", List<string> listStrBoxDef = null)
|
||||
{
|
||||
// Remove all the existing back boxes currently existing
|
||||
songList.RemoveAll(e => e.eノード種別 == C曲リストノード.Eノード種別.BACKBOX);
|
||||
|
||||
int songCount = songList.Count;
|
||||
|
||||
for (int index = 0; index < (songCount / 7) + 1; index++)
|
||||
{
|
||||
var backBox = tGenerateBackButton(parent, path, listStrBoxDef);
|
||||
songList.Insert(Math.Min(index * (7 + 1), songList.Count), backBox);
|
||||
}
|
||||
|
||||
if (songCount > 0)
|
||||
songList.Add(tGenerateRandomButton(parent, path));
|
||||
|
||||
// Return the reference in case of
|
||||
return songList;
|
||||
}
|
||||
|
||||
// Generate the favorite folder content
|
||||
public static List<C曲リストノード> tFetchFavoriteFolder(C曲リストノード parent)
|
||||
{
|
||||
List<C曲リストノード> childList = new List<C曲リストノード>();
|
||||
int increment = 0;
|
||||
|
||||
|
||||
foreach (string id in TJAPlayer3.Favorites.data.favorites[TJAPlayer3.SaveFile])
|
||||
{
|
||||
var node = tGetNodeFromID(id);
|
||||
@ -51,6 +131,13 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Generate back buttons
|
||||
|
||||
string favPath = "./" + parent.strタイトル + "/";
|
||||
|
||||
tReinsertBackButtons(parent, childList, favPath);
|
||||
|
||||
return childList;
|
||||
}
|
||||
|
||||
|
@ -1071,7 +1071,7 @@ namespace TJAPlayer3
|
||||
|
||||
private void t曲リストへ後処理を適用する( List<C曲リストノード> ノードリスト, string parentName = "/", bool isGlobal = true )
|
||||
{
|
||||
|
||||
/*
|
||||
|
||||
#region [ If there is at least one song within the list add a random song node ]
|
||||
|
||||
@ -1090,12 +1090,11 @@ namespace TJAPlayer3
|
||||
itemRandom.strタイトル : itemRandom.r親ノード.strBreadcrumbs + " > " + itemRandom.strタイトル;
|
||||
|
||||
itemRandom.arスコア[0] = new Cスコア();
|
||||
/*
|
||||
|
||||
for (int i = 0; i < (int)Difficulty.Total; i++)
|
||||
{
|
||||
itemRandom.arスコア[0].譜面情報.タイトル = string.Format("< RANDOM SELECT Lv.{0} >", i + 1);
|
||||
}
|
||||
*/
|
||||
ノードリスト.Add(itemRandom);
|
||||
|
||||
#region [ ログ出力 ]
|
||||
@ -1121,7 +1120,7 @@ namespace TJAPlayer3
|
||||
//-----------------------------
|
||||
#endregion
|
||||
|
||||
|
||||
*/
|
||||
|
||||
// すべてのノードについて…
|
||||
foreach ( C曲リストノード c曲リストノード in ノードリスト )
|
||||
@ -1132,12 +1131,19 @@ namespace TJAPlayer3
|
||||
//-----------------------------
|
||||
if ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX )
|
||||
{
|
||||
int 曲数 = c曲リストノード.list子リスト.Count;
|
||||
|
||||
string newPath = parentName + c曲リストノード.strタイトル + "/";
|
||||
|
||||
|
||||
CSongDict.tReinsertBackButtons(c曲リストノード, c曲リストノード.list子リスト, newPath, listStrBoxDefSkinSubfolderFullName);
|
||||
|
||||
/*
|
||||
int 曲数 = c曲リストノード.list子リスト.Count;
|
||||
for (int index = 0; index < (曲数 / 7) + 1; index++)
|
||||
{
|
||||
C曲リストノード itemBack = CSongDict.tGenerateBackButton(c曲リストノード, newPath, listStrBoxDefSkinSubfolderFullName);
|
||||
|
||||
|
||||
|
||||
C曲リストノード itemBack = new C曲リストノード();
|
||||
itemBack.eノード種別 = C曲リストノード.Eノード種別.BACKBOX;
|
||||
|
||||
@ -1175,7 +1181,9 @@ namespace TJAPlayer3
|
||||
"BOX を出ます。" :
|
||||
"Exit from the BOX.";
|
||||
|
||||
c曲リストノード.list子リスト.Insert(Math.Min(index * (7 + 1), c曲リストノード.list子リスト.Count), itemBack);
|
||||
|
||||
|
||||
c曲リストノード.list子リスト.Insert(Math.Min(index * (7 + 1), c曲リストノード.list子リスト.Count), itemBack);
|
||||
|
||||
|
||||
|
||||
@ -1200,6 +1208,8 @@ namespace TJAPlayer3
|
||||
#endregion
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
// Process subfolders recussively
|
||||
t曲リストへ後処理を適用する(c曲リストノード.list子リスト, newPath, false);
|
||||
|
||||
@ -1234,6 +1244,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
// Don't sort songs if the folder isn't global
|
||||
// Call back reinsert back folders if sort called ?
|
||||
if (isGlobal)
|
||||
{
|
||||
#region [ Sort nodes ]
|
||||
|
Loading…
Reference in New Issue
Block a user