1
0
mirror of synced 2025-01-19 01:24:08 +01:00

Fix #99 (subfolders issue)

This commit is contained in:
0aubsq 2022-01-19 18:03:42 +01:00
parent 0c82d884a9
commit 0d01cad55a

View File

@ -308,24 +308,56 @@ namespace TJAPlayer3
//Trace.TraceInformation( "SKIN変更System : "+ CSkin.strSystemSkinSubfolderFullName );
//Trace.TraceInformation( "SKIN変更BoxDef : "+ CSkin.strBoxDefSkinSubfolderFullName );
// Complete list of songs
List<C曲リストード> list = TJAPlayer3.Songs管理.list曲ルート;
// Reinsert parent node
list.Insert(list.IndexOf(this.r現在選択中の曲) + 1, this.r現在選択中の曲.r親ード);
// Reindex the parent node
this.r現在選択中の曲.r親ード.Openindex = r現在選択中の曲.r親ード.list子リスト.IndexOf(this.r現在選択中の曲);
this.r現在選択中の曲 = this.r次の曲(r現在選択中の曲);
// Move song pointer back to the folder
this.r現在選択中の曲 = this.r次の曲(r現在選択中の曲);
// Flatten folder
var flattened = flattenList(this.r現在選択中の曲.list子リスト);
// Remove recursively the included songs that are contained in the folder
for (int index = 0; index < list.Count; index++)
{
if (this.r現在選択中の曲.list子リスト.Contains(list[index]))
if (flattened.Contains(list[index]))
{
list.RemoveAt(index);
index--;
}
}
this.t現在選択中の曲を元に曲バーを再構成する();
this.t選択曲が変更された(false); // #27648 項目数変更を反映させる
this.b選択曲が変更された = true;
return ret;
}
public List<C曲リストード> flattenList(List<C曲リストード> list)
{
List<C曲リストード> ret = new List<C曲リストード>();
ret.AddRange(list);
foreach (var e in list)
{
if (e.eード種別 == C曲リストード.Eード種別.BOX)
{
ret.AddRange(flattenList(e.list子リスト));
}
}
return (ret);
}
public void t現在選択中の曲を元に曲バーを再構成する()
{
this.tバーの初期化();