Improving settings override name editing

issue: MatterHackers/MCCentral#5949
Material profile name doesn't save
This commit is contained in:
LarsBrubaker 2020-07-18 13:48:38 -07:00
parent bae0720164
commit 247bc431cd
9 changed files with 104 additions and 74 deletions

View file

@ -98,12 +98,12 @@ namespace MatterHackers.MatterControl.PrintLibrary
breadCrumbWidget = new FolderBreadCrumbWidget(libraryContext, theme);
navBar.AddChild(breadCrumbWidget);
var searchPanel = new SearchInputBox(theme)
var searchPanel = new TextEditWithInlineCancel(theme)
{
Visible = false,
Margin = new BorderDouble(10, 0, 5, 0),
};
searchPanel.searchInput.ActualTextEditWidget.EnterPressed += (s, e) =>
searchPanel.TextEditWidget.ActualTextEditWidget.EnterPressed += (s, e) =>
{
this.PerformSearch();
};
@ -112,13 +112,13 @@ namespace MatterHackers.MatterControl.PrintLibrary
breadCrumbWidget.Visible = true;
searchPanel.Visible = false;
searchPanel.searchInput.Text = "";
searchPanel.TextEditWidget.Text = "";
this.ClearSearch();
};
// Store a reference to the input field
this.searchInput = searchPanel.searchInput;
this.searchInput = searchPanel.TextEditWidget;
navBar.AddChild(searchPanel);

View file

@ -251,12 +251,12 @@ namespace MatterHackers.MatterControl.PrintLibrary
breadCrumbWidget = new FolderBreadCrumbWidget(workspace.LibraryView, theme);
navBar.AddChild(breadCrumbWidget);
var searchPanel = new SearchInputBox(theme)
var searchPanel = new TextEditWithInlineCancel(theme)
{
Visible = false,
Margin = new BorderDouble(10, 0, 5, 0),
};
searchPanel.searchInput.ActualTextEditWidget.EnterPressed += (s, e) =>
searchPanel.TextEditWidget.ActualTextEditWidget.EnterPressed += (s, e) =>
{
this.PerformSearch();
};
@ -265,13 +265,13 @@ namespace MatterHackers.MatterControl.PrintLibrary
breadCrumbWidget.Visible = true;
searchPanel.Visible = false;
searchPanel.searchInput.Text = "";
searchPanel.TextEditWidget.Text = "";
this.ClearSearch();
};
// Store a reference to the input field
this.searchInput = searchPanel.searchInput;
this.searchInput = searchPanel.TextEditWidget;
navBar.AddChild(searchPanel);
@ -537,40 +537,42 @@ namespace MatterHackers.MatterControl.PrintLibrary
}
}
public class SearchInputBox : GuiWidget
public class TextEditWithInlineCancel : GuiWidget
{
internal MHTextEditWidget searchInput;
public MHTextEditWidget TextEditWidget { get; }
public GuiWidget ResetButton { get; }
public SearchInputBox(ThemeConfig theme, string emptyText = null)
public TextEditWithInlineCancel(ThemeConfig theme, string emptyText = null)
{
if (emptyText == null)
{
emptyText = "Search".Localize();
}
this.VAnchor = VAnchor.Center | VAnchor.Fit;
this.HAnchor = HAnchor.Stretch;
searchInput = new MHTextEditWidget("", theme, messageWhenEmptyAndNotSelected: emptyText ?? "Search".Localize())
TextEditWidget = new MHTextEditWidget("", theme, messageWhenEmptyAndNotSelected: emptyText)
{
Name = "Search Library Edit",
HAnchor = HAnchor.Stretch,
VAnchor = VAnchor.Center
};
this.AddChild(searchInput);
this.AddChild(TextEditWidget);
var resetButton = theme.CreateSmallResetButton();
resetButton.HAnchor |= HAnchor.Right;
resetButton.VAnchor |= VAnchor.Center;
resetButton.Name = "Close Search";
resetButton.ToolTipText = "Clear".Localize();
this.ResetButton = theme.CreateSmallResetButton();
ResetButton.HAnchor |= HAnchor.Right;
ResetButton.VAnchor |= VAnchor.Center;
ResetButton.Name = "Close Search";
ResetButton.ToolTipText = "Clear".Localize();
this.AddChild(resetButton);
this.ResetButton = resetButton;
this.AddChild(ResetButton);
}
public override string Text
{
get => searchInput.ActualTextEditWidget.Text;
set => searchInput.ActualTextEditWidget.Text = value;
get => TextEditWidget.ActualTextEditWidget.Text;
set => TextEditWidget.ActualTextEditWidget.Text = value;
}
}
}

View file

@ -41,7 +41,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
{
public abstract class SearchableTreePanel : FlowLayoutWidget
{
protected SearchInputBox searchBox;
protected TextEditWithInlineCancel searchBox;
protected TreeView treeView;
protected Splitter horizontalSplitter;
protected ThemeConfig theme;
@ -55,7 +55,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
var searchIcon = AggContext.StaticData.LoadIcon("icon_search_24x24.png", 16, 16, theme.InvertIcons).AjustAlpha(0.3);
searchBox = new SearchInputBox(theme)
searchBox = new TextEditWithInlineCancel(theme)
{
Name = "Search",
HAnchor = HAnchor.Stretch,
@ -64,7 +64,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
searchBox.ResetButton.Visible = false;
var searchInput = searchBox.searchInput;
var searchInput = searchBox.TextEditWidget;
searchInput.BeforeDraw += (s, e) =>
{
@ -91,7 +91,7 @@ namespace MatterHackers.MatterControl.PrintLibrary
}
};
searchBox.searchInput.ActualTextEditWidget.TextChanged += (s, e) =>
searchBox.TextEditWidget.ActualTextEditWidget.TextChanged += (s, e) =>
{
if (string.IsNullOrWhiteSpace(searchBox.Text))
{