diff --git a/NUS Downloader/Database.cs b/NUS Downloader/Database.cs
index 1ddca95..029a95f 100644
--- a/NUS Downloader/Database.cs
+++ b/NUS Downloader/Database.cs
@@ -246,7 +246,7 @@ namespace NUS_Downloader
{
throw new Exception("Load the database into a memory stream first!");
}
-
+
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(databaseString);
XmlNodeList VirtualConsoleXMLNodes = xDoc.GetElementsByTagName(VcTag);
diff --git a/NUS Downloader/Form1.cs b/NUS Downloader/Form1.cs
index 53aee10..4897f71 100644
--- a/NUS Downloader/Form1.cs
+++ b/NUS Downloader/Form1.cs
@@ -54,7 +54,7 @@ namespace NUS_Downloader
// Cross-thread Windows Formsing
private delegate void AddToolStripItemToStripCallback(
- ToolStripMenuItem menulist, ToolStripMenuItem additionitem);
+ ToolStripMenuItem menulist, ToolStripMenuItem[] additionitems);
private delegate void WriteStatusCallback(string Update, Color writecolor);
private delegate void BootChecksCallback();
private delegate void SetEnableForDownloadCallback(bool enabled);
@@ -285,7 +285,7 @@ namespace NUS_Downloader
{
if (e.ProgressPercentage == 25)
databaseButton.Text = " [. ]";
- else if (e.ProgressPercentage == 25)
+ else if (e.ProgressPercentage == 50)
databaseButton.Text = " [.. ]";
else if (e.ProgressPercentage == 75)
databaseButton.Text = " [... ]";
@@ -857,26 +857,37 @@ namespace NUS_Downloader
syslowerentry.DropDownItemClicked += new ToolStripItemClickedEventHandler(DatabaseItem_Clicked);
}
}
- AddToolStripItemToStrip(SystemMenuList, systemItems[a]);
+ //AddToolStripItemToStrip(SystemMenuList, systemItems[a]);
//SystemMenuList.DropDownItems.Add(systemItems[a]);
}
+ Array.Sort(systemItems, delegate(ToolStripMenuItem tsmi1, ToolStripMenuItem tsmi2)
+ {
+ return tsmi1.Text
+ .Substring(18, tsmi1.Text.Length - 19).CompareTo(tsmi2.Text.Substring(18, tsmi2.Text.Length - 19));
+ });
+ AddToolStripItemToStrip(SystemMenuList, systemItems);
+
SetPropertyThreadSafe(systemFakeMenuItem, false, "Visible");
SetPropertyThreadSafe(SystemMenuList, true, "Visible");
+ Debug.WriteLine("Database: SysTitles added");
worker.ReportProgress(25);
ToolStripMenuItem[] iosItems = databaseObj.LoadIosTitles();
for (int a = 0; a < iosItems.Length; a++)
{
iosItems[a].DropDownItemClicked += new ToolStripItemClickedEventHandler(DatabaseItem_Clicked);
- AddToolStripItemToStrip(IOSMenuList, iosItems[a]);
+ //AddToolStripItemToStrip(IOSMenuList, iosItems[a]);
//IOSMenuList.DropDownItems.Add(iosItems[a]);
}
+ AddToolStripItemToStrip(IOSMenuList, iosItems);
+
SetPropertyThreadSafe(iosFakeMenuItem, false, "Visible");
SetPropertyThreadSafe(IOSMenuList, true, "Visible");
-
+ Debug.WriteLine("Database: IosTitles added");
worker.ReportProgress(50);
-
+
+ // This has been tested and is not the hanging code...
ToolStripMenuItem[][] vcItems = databaseObj.LoadVirtualConsoleTitles();
for (int a = 0; a < vcItems.Length; a++)
{
@@ -887,24 +898,21 @@ namespace NUS_Downloader
{
ToolStripMenuItem lowerentry = (ToolStripMenuItem)vcItems[a][b].DropDownItems[c];
lowerentry.DropDownItemClicked += new ToolStripItemClickedEventHandler(DatabaseItem_Clicked);
-
- //Debug.WriteLine(a + " " + b + " " + c);
- }
- try
- {
- AddToolStripItemToStrip((ToolStripMenuItem)VCMenuList.DropDownItems[a], vcItems[a][b]);
- }
- catch (Exception)
- {
- Debug.WriteLine(a + " " + b + "FAIL");
}
}
+ Array.Sort(vcItems[a], delegate(ToolStripMenuItem tsmi1, ToolStripMenuItem tsmi2)
+ {
+ return tsmi1.Text
+ .Substring(18, tsmi1.Text.Length - 19).CompareTo(tsmi2.Text.Substring(18, tsmi2.Text.Length - 19));
+ });
+ AddToolStripItemToStrip((ToolStripMenuItem)VCMenuList.DropDownItems[a], vcItems[a]);
}
+
SetPropertyThreadSafe(vcFakeMenuItem, false, "Visible");
SetPropertyThreadSafe(VCMenuList, true, "Visible");
-
+ Debug.WriteLine("Database: VCTitles added");
worker.ReportProgress(75);
-
+
ToolStripMenuItem[] wwItems = databaseObj.LoadWiiWareTitles();
for (int a = 0; a < wwItems.Length; a++)
{
@@ -916,13 +924,21 @@ namespace NUS_Downloader
{
lowerentry.DropDownItemClicked += new ToolStripItemClickedEventHandler(DatabaseItem_Clicked);
}
+
}
- AddToolStripItemToStrip(WiiWareMenuList, wwItems[a]);
+ //AddToolStripItemToStrip(WiiWareMenuList, wwItems[a]);
//WiiWareMenuList.DropDownItems.Add(wwItems[a]);
}
+ Array.Sort(wwItems, delegate(ToolStripMenuItem tsmi1, ToolStripMenuItem tsmi2)
+ {
+ return tsmi1.Text
+ .Substring(18, tsmi1.Text.Length - 19).CompareTo(tsmi2.Text.Substring(18, tsmi2.Text.Length - 19));
+ });
+ AddToolStripItemToStrip(WiiWareMenuList, wwItems);
+
SetPropertyThreadSafe(wwFakeMenuItem, false, "Visible");
SetPropertyThreadSafe(WiiWareMenuList, true, "Visible");
-
+ Debug.WriteLine("Database: WiiWareTitles added");
worker.ReportProgress(100);
}
@@ -932,7 +948,8 @@ namespace NUS_Downloader
/// The type.
/// The additionitem.
/// The attributes.
- private void AddToolStripItemToStrip(ToolStripMenuItem menulist, ToolStripMenuItem additionitem)
+ // private void AddToolStripItemToStrip(ToolStripMenuItem menulist, ToolStripMenuItem additionitem)
+ private void AddToolStripItemToStrip(ToolStripMenuItem menulist, ToolStripMenuItem[] additionitems)
{
//Control.CheckForIllegalCrossThreadCalls = false;
//Debug.WriteLine(String.Format("Adding item"));
@@ -941,10 +958,13 @@ namespace NUS_Downloader
{
//Debug.WriteLine("InvokeRequired...");
AddToolStripItemToStripCallback atsitsc = new AddToolStripItemToStripCallback(AddToolStripItemToStrip);
- this.Invoke(atsitsc, new object[] { menulist, additionitem });
+ this.Invoke(atsitsc, new object[] { menulist, additionitems });
return;
+
}
-
+
+ menulist.DropDownItems.AddRange(additionitems);
+ /*
// Do not sort IOS menu (alphabetization fail)
if (menulist.Text == IOSMenuList.Text)
{
@@ -979,9 +999,9 @@ namespace NUS_Downloader
//{
//Debug.WriteLine("Tryfail at : " + additionitem.Text);
//menulist.DropDownItems.Add(additionitem);
- //}
+ //}*/
- menulist.DropDownItems.Add(additionitem);
+ //menulist.DropDownItems.Add(additionitem);
}
///
@@ -2229,10 +2249,10 @@ namespace NUS_Downloader
{
scriptItems[a].Click += new EventHandler(ScriptItem_Clicked);
- AddToolStripItemToStrip(scriptsDatabaseToolStripMenuItem, scriptItems[a]);
+ //AddToolStripItemToStrip(scriptsDatabaseToolStripMenuItem, scriptItems[a]);
//SystemMenuList.DropDownItems.Add(systemItems[a]);
}
-
+ AddToolStripItemToStrip(scriptsDatabaseToolStripMenuItem, scriptItems);
SetPropertyThreadSafe(scriptsDatabaseToolStripMenuItem, true, "Enabled");
SetPropertyThreadSafe(scriptsDatabaseToolStripMenuItem, true, "Visible");
}
diff --git a/NUS Downloader/Latest/NUS Downloader.exe b/NUS Downloader/Latest/NUS Downloader.exe
index c232421..3086b7a 100644
Binary files a/NUS Downloader/Latest/NUS Downloader.exe and b/NUS Downloader/Latest/NUS Downloader.exe differ