/// <summary> /// Load filter from another form when doing a comparison. /// </summary> public void SetFilter(SpellSearchFilter filter) { SearchText.Text = filter.Text; SearchEffect1.Text = filter.Effect[0]; SearchEffect2.Text = filter.Effect[1]; SearchEffect3.Text = filter.Effect[2]; SearchEffectSlot1.Text = filter.EffectSlot[0].HasValue ? filter.EffectSlot[0].ToString() : ""; SearchEffectSlot2.Text = filter.EffectSlot[1].HasValue ? filter.EffectSlot[1].ToString() : ""; SearchEffectSlot3.Text = filter.EffectSlot[2].HasValue ? filter.EffectSlot[2].ToString() : ""; SearchCategory.Text = filter.Category; SearchClass.Text = filter.Class; if (filter.ClassMinLevel > 0 && filter.ClassMaxLevel > 0) { SearchLevel.Text = filter.ClassMinLevel + "-" + filter.ClassMaxLevel; } else if (filter.ClassMinLevel > 0) { SearchLevel.Text = filter.ClassMinLevel.ToString(); } else if (filter.ClassMaxLevel > 0) { SearchLevel.Text = filter.ClassMaxLevel.ToString(); } IncludeRelated.Checked = filter.AddBackRefs; SearchRanks.Text = filter.Ranks; }
public MainForm() { InitializeComponent(); Width = Math.Min(Screen.PrimaryScreen.WorkingArea.Width - 100, 1800); Height = Screen.PrimaryScreen.WorkingArea.Height - 100; SearchClass.Items.AddRange(Enum.GetNames(typeof(SpellClassesLong))); SearchClass.Sorted = true; SearchClass.Sorted = false; SearchClass.Items.Add("Non PC"); SearchClass.Items.Add("Any PC"); SearchClass.Items.Add(""); SearchEffect1.Items.AddRange(SpellSearchFilter.CommonEffects.Keys.ToArray()); SearchEffect1.Items.Add(""); SearchEffect1.Text = ""; SearchEffect2.Items.AddRange(SpellSearchFilter.CommonEffects.Keys.ToArray()); SearchEffect2.Items.Add(""); SearchEffect3.Items.AddRange(SpellSearchFilter.CommonEffects.Keys.ToArray()); SearchEffect3.Items.Add(""); SearchEffectSlot1.Items.Add(""); SearchEffectSlot1.Items.AddRange(Enumerable.Range(1, 20).Select(x => x.ToString()).ToArray()); SearchEffectSlot2.Items.Add(""); SearchEffectSlot2.Items.AddRange(Enumerable.Range(1, 20).Select(x => x.ToString()).ToArray()); SearchEffectSlot3.Items.Add(""); SearchEffectSlot3.Items.AddRange(Enumerable.Range(1, 20).Select(x => x.ToString()).ToArray()); //SearchBrowser.ObjectForScripting = this; DefaultFilter = GetFilter(); }
/// <summary> /// Save current filter settings into filter object. This is useful when comparing spell lists on a second form. /// </summary> public SpellSearchFilter GetFilter() { var filter = new SpellSearchFilter(); filter.Text = SearchText.Text.Trim(); filter.Effect[0] = SearchEffect1.Text.Trim(); filter.Effect[1] = SearchEffect2.Text.Trim(); filter.Effect[2] = SearchEffect3.Text.Trim(); int slot; if (Int32.TryParse(SearchEffectSlot1.Text.Trim(), out slot)) { filter.EffectSlot[0] = slot; } if (Int32.TryParse(SearchEffectSlot2.Text.Trim(), out slot)) { filter.EffectSlot[1] = slot; } if (Int32.TryParse(SearchEffectSlot3.Text.Trim(), out slot)) { filter.EffectSlot[2] = slot; } filter.Category = SearchCategory.Text.Trim(); filter.Class = SearchClass.Text.Trim(); int min; int max; ParseRange(SearchLevel.Text, out min, out max); filter.ClassMinLevel = min; filter.ClassMaxLevel = max; //filter.AppendForwardRefs = true; filter.Ranks = SearchRanks.Text.Trim(); filter.AddBackRefs = IncludeRelated.Checked; return(filter); }