Move buttons into menu, remove now unused SmallMarginButtonFactory

This commit is contained in:
John Lewin 2018-04-07 10:22:54 -07:00
parent cb8755b26d
commit 13c10644bc
3 changed files with 65 additions and 69 deletions

View file

@ -68,7 +68,6 @@ namespace MatterHackers.MatterControl
public TextImageButtonFactory WhiteButtonFactory;
public TextImageButtonFactory ButtonFactory { get; private set; }
public TextImageButtonFactory SmallMarginButtonFactory { get; private set; }
public TextImageButtonFactory WizardButtons { get; private set; }
/// <summary>
@ -180,12 +179,6 @@ namespace MatterHackers.MatterControl
this.ButtonFactory = new TextImageButtonFactory(commonOptions);
this.SmallMarginButtonFactory = new TextImageButtonFactory(new ButtonFactoryOptions(commonOptions)
{
Margin = new BorderDouble(8, 0),
ImageSpacing = 6
});
this.WizardButtons = new TextImageButtonFactory(new ButtonFactoryOptions(commonOptions)
{
#if __ANDROID__

View file

@ -43,7 +43,7 @@ namespace MatterHackers.MatterControl.PrintQueue
public Action<IEnumerable<ILibraryItem>, ListView> Action { get; set; }
public Func<IEnumerable<ListViewItem>, ListView, bool> IsEnabled { get; set; }
public string ToolTipText { get; internal set; }
internal PopupMenu.MenuItem MenuItem { get; set; }
}

View file

@ -46,8 +46,6 @@ namespace MatterHackers.MatterControl.PrintLibrary
{
public class PrintLibraryWidget : GuiWidget
{
private Button addToLibraryButton;
private Button createFolderButton;
private FlowLayoutWidget buttonPanel;
private ListView libraryView;
private GuiWidget providerMessageContainer;
@ -398,13 +396,8 @@ namespace MatterHackers.MatterControl.PrintLibrary
var activeContainer = this.libraryView.ActiveContainer;
var writableContainer = activeContainer as ILibraryWritableContainer;
bool containerSupportsEdits = activeContainer is ILibraryWritableContainer;
addToLibraryButton.Enabled = containerSupportsEdits;
createFolderButton.Enabled = containerSupportsEdits && writableContainer?.AllowAction(ContainerActions.AddContainers) == true;
searchInput.Text = activeContainer.KeywordFilter;
breadCrumbWidget.SetContainer(activeContainer);
@ -433,60 +426,6 @@ namespace MatterHackers.MatterControl.PrintLibrary
{
buttonPanel.RemoveAllChildren();
// the add button
addToLibraryButton = theme.SmallMarginButtonFactory.Generate("Add".Localize(), AggContext.StaticData.LoadIcon("cube.png", IconColor.Theme));
addToLibraryButton.Enabled = false; // The library selector (the first library selected) is protected so we can't add to it.
addToLibraryButton.ToolTipText = "Add an .stl, .obj, .amf, .gcode or .zip file to the Library".Localize();
addToLibraryButton.Name = "Library Add Button";
addToLibraryButton.Margin = new BorderDouble(0, 0, 3, 0);
addToLibraryButton.Click += (sender, e) => UiThread.RunOnIdle(() =>
{
AggContext.FileDialogs.OpenFileDialog(
new OpenFileDialogParams(ApplicationSettings.OpenPrintableFileParams, multiSelect: true),
(openParams) =>
{
if (openParams.FileNames != null)
{
var writableContainer = this.libraryView.ActiveContainer as ILibraryWritableContainer;
if (writableContainer != null
&& openParams.FileNames.Length > 0)
{
writableContainer.Add(openParams.FileNames.Select(f => new FileSystemFileItem(f)));
}
}
});
});
buttonPanel.AddChild(addToLibraryButton);
// the create folder button
createFolderButton = theme.SmallMarginButtonFactory.Generate("Create Folder".Localize());
createFolderButton.Enabled = false; // Disabled until changed by the ActiveContainer
createFolderButton.Name = "Create Folder From Library Button";
createFolderButton.Margin = new BorderDouble(0, 0, 3, 0);
createFolderButton.Click += (sender, e) =>
{
DialogWindow.Show(
new InputBoxPage(
"Create Folder".Localize(),
"Folder Name".Localize(),
"",
"Enter New Name Here".Localize(),
"Create".Localize(),
(newName) =>
{
if (!string.IsNullOrEmpty(newName)
&& this.libraryView.ActiveContainer is ILibraryWritableContainer writableContainer)
{
writableContainer.Add(new[]
{
new CreateFolderItem() { Name = newName }
});
}
}));
};
buttonPanel.AddChild(createFolderButton);
// add in the message widget
providerMessageContainer = new GuiWidget()
{
@ -510,6 +449,70 @@ namespace MatterHackers.MatterControl.PrintLibrary
private void CreateMenuActions()
{
menuActions.Add(new PrintItemAction()
{
Title = "Add".Localize(),
ToolTipText = "Add an.stl, .obj, .amf, .gcode or.zip file to the Library".Localize(),
Action = (selectedLibraryItems, listView) =>
{
/*
AggContext.StaticData.LoadIcon("cube.png", IconColor.Theme)
Name = "Library Add Button";
*/
AggContext.FileDialogs.OpenFileDialog(
new OpenFileDialogParams(ApplicationSettings.OpenPrintableFileParams, multiSelect: true),
(openParams) =>
{
if (openParams.FileNames != null)
{
var writableContainer = this.libraryView.ActiveContainer as ILibraryWritableContainer;
if (writableContainer != null
&& openParams.FileNames.Length > 0)
{
writableContainer.Add(openParams.FileNames.Select(f => new FileSystemFileItem(f)));
}
}
});
},
IsEnabled = (s, l) => this.libraryView.ActiveContainer is ILibraryWritableContainer
});
menuActions.Add(new PrintItemAction()
{
Title = "Create Folder".Localize(),
Action = (selectedLibraryItems, listView) =>
{
/*
Name = "Create Folder From Library Button";
*/
DialogWindow.Show(
new InputBoxPage(
"Create Folder".Localize(),
"Folder Name".Localize(),
"",
"Enter New Name Here".Localize(),
"Create".Localize(),
(newName) =>
{
if (!string.IsNullOrEmpty(newName)
&& this.libraryView.ActiveContainer is ILibraryWritableContainer writableContainer)
{
writableContainer.Add(new[]
{
new CreateFolderItem() { Name = newName }
});
}
}));
},
IsEnabled = (s, l) =>
{
return this.libraryView.ActiveContainer is ILibraryWritableContainer writableContainer
&& writableContainer?.AllowAction(ContainerActions.AddContainers) == true;
}
});
menuActions.Add(new PrintItemAction()
{