From cc72e1b0357715e6d45f9001cc63a4637fefa7d4 Mon Sep 17 00:00:00 2001 From: AdAstra-LD Date: Tue, 2 Feb 2021 01:55:38 +0100 Subject: [PATCH] Fixed "reset search" button repeating operation when not needed --- DS_Map/HeaderSearch.cs | 30 ++++++++++++++++++++---------- DS_Map/Main Window.cs | 11 ++++------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/DS_Map/HeaderSearch.cs b/DS_Map/HeaderSearch.cs index d264b57..bcabfc5 100644 --- a/DS_Map/HeaderSearch.cs +++ b/DS_Map/HeaderSearch.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Windows.Forms; namespace DSPRE { + public partial class HeaderSearch : Form { private List searchableHeaderFieldsList = new List() { "Area Data (ID)", @@ -41,10 +42,11 @@ namespace DSPRE { private List intNames; private ListBox headerListBox; + private ToolStripStatusLabel statusLabel; public string status = "Ready"; - public HeaderSearch(ref List internalNames, ListBox headerListBox) { + public HeaderSearch(ref List internalNames, ListBox headerListBox, ToolStripStatusLabel statusLabel) { InitializeComponent(); searchableHeaderFields = searchableHeaderFieldsList.ToArray(); headerSearchNumericOperators = headerSearchNumericOperatorsList.ToArray(); @@ -52,6 +54,7 @@ namespace DSPRE { intNames = internalNames; this.headerListBox = headerListBox; + this.statusLabel = statusLabel; fieldToSearch1ComboBox.Items.AddRange(searchableHeaderFields); fieldToSearch1ComboBox.SelectedIndex = 0; @@ -180,26 +183,33 @@ namespace DSPRE { string searchConfiguration = fieldToSearch1ComboBox.Text + " " + operator1ComboBox.Text.ToLower() + " " + '"' + value1TextBox.Text + '"'; if (result == null || result.Count <= 0) { - headerListBox.Items.Add("No header's " + searchConfiguration); + string res = "No header suits the search criteria."; + headerListBox.Items.Add(res); headerListBox.Enabled = false; + statusLabel.Text = res; } else { headerListBox.Items.AddRange(result.ToArray()); headerListBox.SelectedIndex = 0; headerListBox.Enabled = true; - status = "Showing headers whose " + searchConfiguration; + statusLabel.Text = "Showing headers whose " + searchConfiguration; } + Update(); } private void headerSearchResetButton_Click(object sender, EventArgs e) { - headerSearchReset(headerListBox, intNames); + HeaderSearchReset(headerListBox, intNames); + statusLabel.Text = "Ready"; } - public static void headerSearchReset(ListBox headerListBox, List intNames) { - headerListBox.Enabled = true; - headerListBox.Items.Clear(); + public static void HeaderSearchReset(ListBox headerListBox, List intNames) { + if (headerListBox.Items.Count < intNames.Count) { - for (int i = 0; i < intNames.Count; i++) { - String name = intNames[i]; - headerListBox.Items.Add(i.ToString("D3") + Header.nameSeparator + name); + headerListBox.Enabled = true; + headerListBox.Items.Clear(); + + for (int i = 0; i < intNames.Count; i++) { + string name = intNames[i]; + headerListBox.Items.Add(i.ToString("D3") + Header.nameSeparator + name); + } } } } diff --git a/DS_Map/Main Window.cs b/DS_Map/Main Window.cs index bd3c857..d042192 100644 --- a/DS_Map/Main Window.cs +++ b/DS_Map/Main Window.cs @@ -688,9 +688,8 @@ namespace DSPRE { } private void headerSearchToolStripButton_Click(object sender, EventArgs e) { mainTabControl.SelectedIndex = 0; //Select Header Editor - using (HeaderSearch h = new HeaderSearch(ref internalNames, headerListBox)) { + using (HeaderSearch h = new HeaderSearch(ref internalNames, headerListBox, statusLabel)) { h.ShowDialog(); - statusLabel.Text = h.status; } } private void advancedHeaderSearchToolStripMenuItem_Click(object sender, EventArgs e) { @@ -1504,9 +1503,7 @@ namespace DSPRE { private void resetButton_Click(object sender, EventArgs e) { searchLocationTextBox.Clear(); - if (headerListBox.Items.Count < internalNames.Count) - HeaderSearch.headerSearchReset(headerListBox, internalNames); - + HeaderSearch.HeaderSearchReset(headerListBox, internalNames); statusLabel.Text = "Ready"; } private void searchHeaderTextBox_KeyPress(object sender, KeyEventArgs e) { @@ -1561,7 +1558,7 @@ namespace DSPRE { headerListBox.Enabled = true; } } else if (headerListBox.Items.Count < internalNames.Count) { - HeaderSearch.headerSearchReset(headerListBox, internalNames); + HeaderSearch.HeaderSearchReset(headerListBox, internalNames); } } private void scriptFileUpDown_ValueChanged(object sender, EventArgs e) { @@ -2025,7 +2022,7 @@ namespace DSPRE { } private void headersGridView_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { if (headerListBox.Items.Count < internalNames.Count) - HeaderSearch.headerSearchReset(headerListBox, internalNames); + HeaderSearch.HeaderSearchReset(headerListBox, internalNames); if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { int headerNumber = Convert.ToInt32(headersGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value); headerListBox.SelectedIndex = headerNumber;