From 64ff7a72ed83094a57b6ffd6dae5e7a6f28812ff Mon Sep 17 00:00:00 2001 From: Tim Young Date: Mon, 19 Jun 2017 13:02:55 -0500 Subject: [PATCH] Change auto-select of puzzle to work when earlier level puzzles are not done. Only select it when it is going to be shown. --- EduNetworkBuilder/ListBoxWindow.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/EduNetworkBuilder/ListBoxWindow.cs b/EduNetworkBuilder/ListBoxWindow.cs index 11a3d3b..61d86a6 100644 --- a/EduNetworkBuilder/ListBoxWindow.cs +++ b/EduNetworkBuilder/ListBoxWindow.cs @@ -228,20 +228,24 @@ namespace EduNetworkBuilder List Puzzles = NB.GetPuzzleNames(); NBSettings oursettings = NB.GetSettings(); if (Puzzles == null) return; + bool wasfinished = false; foreach (string str in Puzzles) { + wasfinished = false; if (FilterString == "") { pi = NB.GetPuzzleInfoFromName(str); shown_name = pi.PuzzleName; if (oursettings.ScoreList.Contains(str)) + { shown_name = "* " + shown_name; - else if (selected == "") - selected = shown_name; //Select the first unfinished puzzle + wasfinished = true; + } foreach (string tag in pi.PuzzleTags) { if (isChecked(tag)) { + if(selected == "" && !wasfinished) selected = shown_name; //Select the first unfinished puzzle lbWindowData.Items.Add(shown_name); break; } @@ -254,9 +258,10 @@ namespace EduNetworkBuilder bool added = false; string localFilter = ".*" + FilterString + ".*"; if (oursettings.ScoreList.Contains(str)) + { shown_name = "* " + shown_name; - else if (selected == "") - selected = shown_name; //Select the first unfinished puzzle + wasfinished = true; + } if (!added && pi.PuzzleName != null && Regex.IsMatch(pi.PuzzleName, localFilter, RegexOptions.IgnoreCase)) { added = true; @@ -276,6 +281,7 @@ namespace EduNetworkBuilder { if (!added && pi.PuzzleTitle != null && Regex.IsMatch(tag, localFilter, RegexOptions.IgnoreCase)) { + if (selected == "" && !wasfinished) selected = shown_name; //Select the first unfinished puzzle lbWindowData.Items.Add(shown_name); break; }