From 3577de06cf83a666f1bd2710b3de0db8ec3f0a08 Mon Sep 17 00:00:00 2001 From: givememystuffplease Date: Thu, 12 Aug 2010 16:04:04 +0000 Subject: [PATCH] Greatly reduced database loading times and lag (AddRange vs Add) --- NUS Downloader/Database.cs | 2 +- NUS Downloader/Form1.cs | 74 ++++++++++++++--------- NUS Downloader/Latest/NUS Downloader.exe | Bin 427520 -> 428032 bytes 3 files changed, 48 insertions(+), 28 deletions(-) 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 c232421a7c0f98fec166ec3d67b07a01afd52cf1..3086b7a8c5bd9da5ada10ef92edb8cd2e4fb995a 100644 GIT binary patch delta 43606 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Μ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