Added Open to the 3D view tool bar

This commit is contained in:
Lars Brubaker 2018-10-29 17:31:43 -07:00
parent dadf384ecb
commit 1c7366ef1c
2 changed files with 43 additions and 47 deletions

View file

@ -172,42 +172,6 @@ namespace MatterHackers.MatterControl.PrintLibrary
};
toolbar.AddChild(showFolders);
var openButton = new TextIconButton("Open".Localize(), AggContext.StaticData.LoadIcon("fa-folder-open_16.png", 16, 16, theme.InvertIcons), theme)
{
Margin = theme.ButtonSpacing,
ToolTipText = "Open File".Localize()
};
openButton.Click += (s, e) =>
{
popupMenuButton.CloseMenu();
var extensionsWithoutPeriod = new HashSet<string>(ApplicationSettings.OpenDesignFileParams.Split('|').First().Split(',').Select(t => t.Trim().Trim('.')));
foreach (var extension in ApplicationController.Instance.Library.ContentProviders.Keys)
{
extensionsWithoutPeriod.Add(extension.ToUpper());
}
var extensionsArray = extensionsWithoutPeriod.OrderBy(t => t).ToArray();
string filter = string.Format(
"{0}|{1}",
string.Join(",", extensionsArray),
string.Join("", extensionsArray.Select(t => $"*.{t.ToLower()};").ToArray()));
UiThread.RunOnIdle(() =>
{
AggContext.FileDialogs.OpenFileDialog(
new OpenFileDialogParams(filter, multiSelect: true),
(openParams) =>
{
ViewControls3D.LoadAndAddPartsToPlate(this, openParams.FileNames, ApplicationController.Instance.DragDropData.SceneContext);
});
}, .1);
};
toolbar.AddChild(openButton);
PopupMenuButton viewMenuButton;
toolbar.AddChild(

View file

@ -319,6 +319,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
this.AddChild(new ToolbarSeparator(theme));
this.AddChild(CreateOpenButton(theme));
this.AddChild(CreateSaveButton(theme));
this.AddChild(new ToolbarSeparator(theme));
var undoButton = new IconButton(AggContext.StaticData.LoadIcon("Undo_grey_16x.png", 16, 16, theme.InvertIcons), theme)
{
Name = "3D View Undo",
@ -334,7 +340,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
undoBuffer.Undo();
view3DWidget.InteractionLayer.Focus();
// if the item we had selected is still in the scene, re-select it
if(sceneContext.Scene.Children.Contains(selectedItem))
if (sceneContext.Scene.Children.Contains(selectedItem))
{
sceneContext.Scene.SelectedItem = selectedItem;
}
@ -363,8 +369,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
};
this.AddChild(redoButton);
this.AddChild(CreateSaveButton(theme));
if (showPrintButton)
{
var printButton = new TextButton("Print", theme)
@ -502,6 +506,42 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
Scene_SelectionChanged(null, null);
}
private IconButton CreateOpenButton(ThemeConfig theme)
{
var openButton = new IconButton(AggContext.StaticData.LoadIcon("fa-folder-open_16.png", 16, 16, theme.InvertIcons), theme)
{
Margin = theme.ButtonSpacing,
ToolTipText = "Open File".Localize()
};
openButton.Click += (s, e) =>
{
var extensionsWithoutPeriod = new HashSet<string>(ApplicationSettings.OpenDesignFileParams.Split('|').First().Split(',').Select(t => t.Trim().Trim('.')));
foreach (var extension in ApplicationController.Instance.Library.ContentProviders.Keys)
{
extensionsWithoutPeriod.Add(extension.ToUpper());
}
var extensionsArray = extensionsWithoutPeriod.OrderBy(t => t).ToArray();
string filter = string.Format(
"{0}|{1}",
string.Join(",", extensionsArray),
string.Join("", extensionsArray.Select(t => $"*.{t.ToLower()};").ToArray()));
UiThread.RunOnIdle(() =>
{
AggContext.FileDialogs.OpenFileDialog(
new OpenFileDialogParams(filter, multiSelect: true),
(openParams) =>
{
ViewControls3D.LoadAndAddPartsToPlate(this, openParams.FileNames, ApplicationController.Instance.DragDropData.SceneContext);
});
}, .1);
};
return openButton;
}
private void Scene_SelectionChanged(object sender, EventArgs e)
{
// Set enabled level based on operation rules
@ -674,14 +714,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
});
});
var exportAction = view3DWidget.WorkspaceActions["Export"];
var exportItem = popupMenu.CreateMenuItem("Export".Localize(), exportAction.Icon);
exportItem.Click += (s, e) =>
{
exportAction.Action.Invoke();
};
return popupMenu;
},
BackgroundColor = theme.ToolbarButtonBackground,