diff --git a/EduNetworkBuilder/App.config b/EduNetworkBuilder/App.config index 0e0349b..b358003 100644 --- a/EduNetworkBuilder/App.config +++ b/EduNetworkBuilder/App.config @@ -34,6 +34,9 @@ -1 + + none + \ No newline at end of file diff --git a/EduNetworkBuilder/ListBoxWindow.cs b/EduNetworkBuilder/ListBoxWindow.cs index f594ac8..58bd8d3 100644 --- a/EduNetworkBuilder/ListBoxWindow.cs +++ b/EduNetworkBuilder/ListBoxWindow.cs @@ -151,14 +151,26 @@ namespace EduNetworkBuilder if (Properties.Settings.Default.ScoreList == null) Properties.Settings.Default.ScoreList = new System.Collections.Specialized.StringCollection(); PuzzleInfo PI; + string first = ""; + + string OriginalChoice = Properties.Settings.Default.ProcessingLevel; + if(OriginalChoice != null) + { + if (NB.PuzzleLevelHasUnsolved(OriginalChoice)) + return OriginalChoice; + } + foreach (string str in NB.GetPuzzleNames()) { if(!Properties.Settings.Default.ScoreList.Contains(str)) { PI = NB.GetPuzzleInfoFromName(str); - return "Level_" + PI.Level; + first = "Level_" + PI.Level; + break; } } + if (first != "") + return first; return NB.Translate("_All"); } @@ -308,6 +320,28 @@ namespace EduNetworkBuilder { processing = true; DebugLevel toFind; + int mycount = 0; + string labelname = ""; + if (MyMode == LBContents.puzzles) + { + foreach (Control mycontrol in panelCheckboxes.Controls) + { + //pull out the name + CheckBox cb = (CheckBox)mycontrol; + //make an enum. See if that is set. If so, mark it as checked + if (cb.Checked) + { + mycount++; + labelname = mycontrol.Text; + } + } + if (mycount == 1) + { + //We only have one item checked. Store this value for later + Properties.Settings.Default.ProcessingLevel = labelname; + Properties.Settings.Default.Save(); + } + } if (MyMode == LBContents.messages) { foreach (Control mycontrol in panelCheckboxes.Controls) @@ -319,6 +353,8 @@ namespace EduNetworkBuilder if ((toFind & WhatToDisplay) == toFind) { cb.Checked = true; + labelname = mycontrol.Text; + mycount++; } else //If not, mark it as not checked. { diff --git a/EduNetworkBuilder/NB.cs b/EduNetworkBuilder/NB.cs index ad64041..111f882 100644 --- a/EduNetworkBuilder/NB.cs +++ b/EduNetworkBuilder/NB.cs @@ -465,6 +465,13 @@ namespace EduNetworkBuilder return myWin.GetPuzzleTags(); } + public static bool PuzzleLevelHasUnsolved(string LevelName) + { + BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; + if (myWin == null) return false; + return myWin.PuzzleLevelHasUnsolved(LevelName); + } + public static List GetPuzzleNames() { BuilderWindow myWin = (BuilderWindow)Application.OpenForms["BuilderWindow"]; diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs index 685a2fd..b88f01c 100644 --- a/EduNetworkBuilder/NetworkBuilder.cs +++ b/EduNetworkBuilder/NetworkBuilder.cs @@ -461,6 +461,24 @@ namespace EduNetworkBuilder return null; } + public bool PuzzleLevelHasUnsolved(string LevelName) + { + if (Properties.Settings.Default.ScoreList == null) + Properties.Settings.Default.ScoreList = new System.Collections.Specialized.StringCollection(); + + foreach (PuzzleInfo pi in PuzzleList) + { + if ("Level_" + pi.Level.ToString() == LevelName) + { + if (!Properties.Settings.Default.ScoreList.Contains(pi.PuzzleName)) + { + return true; //We have one puzzle in the level which has not been solved + } + } + } + return false; + } + public List GetPuzzleTags() { List PuzzleTags = new List(); @@ -486,6 +504,7 @@ namespace EduNetworkBuilder LevelTags.AddRange(PuzzleTags); return LevelTags; } + public List GetPuzzleNames() { List PuzzleNames = new List(); @@ -495,6 +514,7 @@ namespace EduNetworkBuilder } return PuzzleNames; } + private void btnClick(object sender, EventArgs e) { foreach(Control btn in Buttons) diff --git a/EduNetworkBuilder/Properties/Settings.Designer.cs b/EduNetworkBuilder/Properties/Settings.Designer.cs index 9ceefb0..dcdb7af 100644 --- a/EduNetworkBuilder/Properties/Settings.Designer.cs +++ b/EduNetworkBuilder/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.34209 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -12,7 +12,7 @@ namespace EduNetworkBuilder.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -129,5 +129,17 @@ namespace EduNetworkBuilder.Properties { this["MainWindowHeight"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("none")] + public string ProcessingLevel { + get { + return ((string)(this["ProcessingLevel"])); + } + set { + this["ProcessingLevel"] = value; + } + } } } diff --git a/EduNetworkBuilder/Properties/Settings.settings b/EduNetworkBuilder/Properties/Settings.settings index 9c65c3b..1dd92c8 100644 --- a/EduNetworkBuilder/Properties/Settings.settings +++ b/EduNetworkBuilder/Properties/Settings.settings @@ -29,5 +29,8 @@ -1 + + none + \ No newline at end of file diff --git a/EduNetworkBuilder/Resources/ReleaseNotes.rtf b/EduNetworkBuilder/Resources/ReleaseNotes.rtf index fa747ab..291597f 100644 --- a/EduNetworkBuilder/Resources/ReleaseNotes.rtf +++ b/EduNetworkBuilder/Resources/ReleaseNotes.rtf @@ -5,7 +5,8 @@ * Fixed size of labels on IP-Address editor box\par * Hide gateway label when we do not need it. (ip-address editor)\par * rename "mixed network" puzzle to be "adding devices" (the puzzle was about adding devices)\par -* Changed layout of many messages\b\par +* Changed layout of many messages\par +* Save the level we are working on. Allows us to finish level 5 before level 3 if we want to.\b\par Version 1.0.24 \par \b0 * Add sound when ctrl-s is pressed so we know we saved.\par * Add sound fail when save is canceled (will use it later if ctrl-s fails)\par