From 81f4786d27697b2a81f9a4b0b8df8ba4ca79802e Mon Sep 17 00:00:00 2001 From: jlewin Date: Mon, 10 Jun 2019 16:24:40 -0700 Subject: [PATCH] Hook escape key to clear search filter --- .../Library/Widgets/SearchableTreePanel.cs | 15 +++++++++++++++ MatterControlLib/SetupWizard/DialogPage.cs | 3 ++- MatterControlLib/SetupWizard/HelpPage.cs | 2 ++ MatterControlLib/SetupWizard/HelpTreePanel.cs | 6 ++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/MatterControlLib/Library/Widgets/SearchableTreePanel.cs b/MatterControlLib/Library/Widgets/SearchableTreePanel.cs index 167e93c13..272b98da3 100644 --- a/MatterControlLib/Library/Widgets/SearchableTreePanel.cs +++ b/MatterControlLib/Library/Widgets/SearchableTreePanel.cs @@ -83,6 +83,15 @@ namespace MatterHackers.MatterControl.PrintLibrary this.ClearSearch(); }; + searchBox.KeyDown += (s, e) => + { + if (e.KeyCode == Keys.Escape) + { + this.ClearSearch(); + e.Handled = true; + } + }; + searchBox.searchInput.ActualTextEditWidget.TextChanged += (s, e) => { if (string.IsNullOrWhiteSpace(searchBox.Text)) @@ -163,6 +172,8 @@ namespace MatterHackers.MatterControl.PrintLibrary searchBox.Text = ""; searchBox.ResetButton.Visible = false; treeView.SelectedNode = null; + + this.OnClearSearch(); } protected abstract bool FilterTree(TreeNode context, string filter, bool parentVisible, List matches); @@ -178,6 +189,10 @@ namespace MatterHackers.MatterControl.PrintLibrary } } + protected virtual void OnClearSearch() + { + } + public bool TreeLoaded { get; protected set; } } } diff --git a/MatterControlLib/SetupWizard/DialogPage.cs b/MatterControlLib/SetupWizard/DialogPage.cs index 932efb802..a5065b196 100644 --- a/MatterControlLib/SetupWizard/DialogPage.cs +++ b/MatterControlLib/SetupWizard/DialogPage.cs @@ -246,7 +246,8 @@ namespace MatterHackers.MatterControl private void SystemWindow_KeyDown(object sender, KeyEventArgs e) { - if (e.KeyCode == Keys.Escape) + if (e.KeyCode == Keys.Escape + && !e.Handled) { this.OnCancel(out bool abortCancel); diff --git a/MatterControlLib/SetupWizard/HelpPage.cs b/MatterControlLib/SetupWizard/HelpPage.cs index 1b8fcd32e..4789ef336 100644 --- a/MatterControlLib/SetupWizard/HelpPage.cs +++ b/MatterControlLib/SetupWizard/HelpPage.cs @@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project. */ using System.Collections.Generic; +using MatterHackers.Agg; using MatterHackers.Agg.UI; using MatterHackers.Localizations; using MatterHackers.MatterControl.PartPreviewWindow; @@ -45,6 +46,7 @@ namespace MatterHackers.MatterControl this.headerRow.Visible = false; contentRow.Padding = 0; + contentRow.BackgroundColor = Color.Transparent; contentRow.AddChild(new HelpTreePanel(theme, guideKey) { diff --git a/MatterControlLib/SetupWizard/HelpTreePanel.cs b/MatterControlLib/SetupWizard/HelpTreePanel.cs index 181a26b6c..393aa7761 100644 --- a/MatterControlLib/SetupWizard/HelpTreePanel.cs +++ b/MatterControlLib/SetupWizard/HelpTreePanel.cs @@ -91,6 +91,12 @@ namespace MatterHackers.MatterControl return hasMatch; } + protected override void OnClearSearch() + { + rootNode.Expanded = true; + base.OnClearSearch(); + } + private void CreateKeyBindingsPage() { double left, right;