Merge pull request #2400 from larsbrubaker/design_tools
Fixing delete command
This commit is contained in:
commit
aa55fe230b
5 changed files with 38 additions and 10 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue