Improving settings override name editing
issue: MatterHackers/MCCentral#5949 Material profile name doesn't save
This commit is contained in:
parent
bae0720164
commit
247bc431cd
9 changed files with 104 additions and 74 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue