diff --git a/OpenNest/Actions/ActionClone.cs b/OpenNest/Actions/ActionClone.cs index 6ce0b18..ebd51b1 100644 --- a/OpenNest/Actions/ActionClone.cs +++ b/OpenNest/Actions/ActionClone.cs @@ -12,6 +12,7 @@ namespace OpenNest.Actions public class ActionClone : Action { private readonly List parts; + private readonly List sourceParts; private double lastScale; @@ -28,6 +29,7 @@ namespace OpenNest.Actions plateView.MouseDown += plateView_MouseDown; plateView.Paint += plateView_Paint; + sourceParts = partsToClone; parts = new List(); lastScale = double.NaN; @@ -61,6 +63,16 @@ namespace OpenNest.Actions Apply(); break; + case Keys.Delete: + foreach (var part in sourceParts) + plateView.Plate.Parts.Remove(part); + + if (plateView.Plate.CutOffs.Count > 0) + plateView.Plate.RegenerateCutOffs(plateView.CutOffSettings); + + plateView.Invalidate(); + break; + case Keys.F: if ((Control.ModifierKeys & Keys.Control) == Keys.Control) Fill(); diff --git a/OpenNest/Controls/PlateView.cs b/OpenNest/Controls/PlateView.cs index 5a454bc..ddd6486 100644 --- a/OpenNest/Controls/PlateView.cs +++ b/OpenNest/Controls/PlateView.cs @@ -386,11 +386,7 @@ namespace OpenNest.Controls switch (e.KeyCode) { case Keys.Delete: - if (currentAction is ActionClone) - { - SetAction(typeof(ActionSelect)); - } - else if (selectedCutOff != null) + if (selectedCutOff != null) { Plate.CutOffs.Remove(selectedCutOff); selectedCutOff = null; @@ -853,6 +849,7 @@ namespace OpenNest.Controls Invalidate(); } + private void redrawTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { Invalidate();