Merge pull request #2400 from larsbrubaker/design_tools

Fixing delete command
This commit is contained in:
Lars Brubaker 2017-08-29 13:56:55 -07:00 committed by GitHub
commit aa55fe230b
5 changed files with 38 additions and 10 deletions

View file

@ -108,7 +108,7 @@ namespace MatterHackers.MatterControl.ActionBar
};
container.AddChild(new SettingsItem(
string.Format("{0} {1}", "HotEnd".Localize(), extruderIndex + 1),
string.Format("{0} {1}", "Hot End".Localize(), extruderIndex + 1),
new SettingsItem.ToggleSwitchConfig()
{
Checked = false,

View file

@ -361,7 +361,7 @@ namespace MatterHackers.MeshVisualizer
private void DrawObject(IObject3D object3D, Matrix4X4 transform, List<MeshRenderData> transparentMeshes, bool parentSelected, DrawEventArgs e)
{
foreach (var renderData in object3D.VisibleMeshes(transform))
foreach (var renderData in object3D.VisibleMeshes(transform, object3D.Color, object3D.MaterialIndex, object3D.OutputType))
{
bool isSelected = parentSelected ||
scene.HasSelection && (object3D == scene.SelectedItem || scene.SelectedItem.Children.Contains(object3D));

View file

@ -232,10 +232,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
{
// Create and perform the delete operation
var deleteOperation = new DeleteCommand(view3DWidget, Scene.SelectedItem);
deleteOperation.Do();
// Store the operation for undo/redo
view3DWidget.Scene.UndoBuffer.Add(deleteOperation);
view3DWidget.Scene.UndoBuffer.AddAndDo(deleteOperation);
Scene.ClearSelection();
}
}

View file

@ -27,6 +27,7 @@ of the authors and should not be interpreted as representing official policies,
either expressed or implied, of the FreeBSD Project.
*/
using System.Collections.Generic;
using MatterHackers.Agg.UI;
using MatterHackers.DataConverters3D;
@ -34,21 +35,40 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
{
public class DeleteCommand : IUndoRedoCommand
{
private IObject3D item;
private List<IObject3D> items = new List<IObject3D>();
private View3DWidget view3DWidget;
public DeleteCommand(View3DWidget view3DWidget, IObject3D deletingItem)
{
this.view3DWidget = view3DWidget;
this.item = deletingItem;
if (deletingItem.ItemType == Object3DTypes.SelectionGroup)
{
var childrenToAdd = deletingItem.Children;
// push whatever happend to the selection into the objects before saving them
view3DWidget.Scene.ClearSelection();
// save them in our list
foreach (var item in childrenToAdd)
{
items.Add(item);
}
}
else
{
this.items.Add(deletingItem);
}
}
public void Do()
{
view3DWidget.Scene.ClearSelection();
view3DWidget.Scene.ModifyChildren(children =>
{
children.Remove(item);
foreach (var item in items)
{
children.Remove(item);
}
});
view3DWidget.Scene.SelectLastChild();
@ -60,10 +80,17 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
{
view3DWidget.Scene.ModifyChildren(children =>
{
children.Add(item);
foreach (var item in items)
{
children.Add(item);
}
});
view3DWidget.Scene.SelectedItem = item;
view3DWidget.Scene.ClearSelection();
foreach (var item in items)
{
view3DWidget.Scene.AddToSelection(item);
}
view3DWidget.PartHasBeenChanged();
}

@ -1 +1 @@
Subproject commit 272f9d86731a3e3f2fa71118971fa2b2399ecef3
Subproject commit d3b689891485d6687c9aa1692996fa8b62a53050