diff --git a/OpenNest/Actions/Action.cs b/OpenNest/Actions/Action.cs index 5914fec..22c82fd 100644 --- a/OpenNest/Actions/Action.cs +++ b/OpenNest/Actions/Action.cs @@ -13,6 +13,8 @@ namespace OpenNest.Actions public virtual bool SurvivesPlateChange => false; + public virtual void OnPlateChanged() { } + public abstract void DisconnectEvents(); public abstract void CancelAction(); diff --git a/OpenNest/Actions/ActionClone.cs b/OpenNest/Actions/ActionClone.cs index e3dc7bf..534b013 100644 --- a/OpenNest/Actions/ActionClone.cs +++ b/OpenNest/Actions/ActionClone.cs @@ -100,6 +100,12 @@ namespace OpenNest.Actions public override bool SurvivesPlateChange => true; + public override void OnPlateChanged() + { + plateView.SelectedParts.Clear(); + plateView.SelectedParts.AddRange(parts); + } + public override void DisconnectEvents() { plateView.KeyDown -= plateView_KeyDown; diff --git a/OpenNest/Controls/PlateView.cs b/OpenNest/Controls/PlateView.cs index 819f39f..b19d305 100644 --- a/OpenNest/Controls/PlateView.cs +++ b/OpenNest/Controls/PlateView.cs @@ -129,6 +129,8 @@ namespace OpenNest.Controls if (currentAction == null || !currentAction.SurvivesPlateChange) SetAction(typeof(ActionSelect)); + else + currentAction.OnPlateChanged(); } public string Status