Making ungroup and flatten do the same behavior and always be available
This commit is contained in:
parent
4092d34e01
commit
3e38fac335
3 changed files with 23 additions and 4 deletions
|
|
@ -597,7 +597,8 @@ namespace MatterHackers.MatterControl
|
|||
if(selectedItem != null)
|
||||
{
|
||||
return selectedItem is GroupObject3D
|
||||
|| selectedItem.GetType() == typeof(Object3D);
|
||||
|| selectedItem.GetType() == typeof(Object3D)
|
||||
|| selectedItem.CanFlatten;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ using MatterHackers.DataConverters3D;
|
|||
using MatterHackers.Localizations;
|
||||
using MatterHackers.MatterControl.CustomWidgets;
|
||||
using MatterHackers.MatterControl.DesignTools;
|
||||
using MatterHackers.MatterControl.DesignTools.Operations;
|
||||
using MatterHackers.MatterControl.Library;
|
||||
using MatterHackers.MatterControl.SlicerConfiguration;
|
||||
using static JsonPath.JsonPathContext.ReflectionValueSystem;
|
||||
|
|
@ -83,11 +84,19 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
{
|
||||
Margin = theme.ButtonSpacing,
|
||||
ToolTipText = "Flatten".Localize(),
|
||||
Enabled = scene.SelectedItem?.CanFlatten == true
|
||||
Enabled = true
|
||||
};
|
||||
flattenButton.Click += (s, e) =>
|
||||
{
|
||||
this.item.Flatten(view3DWidget.Scene.UndoBuffer);
|
||||
if (this.item.CanFlatten)
|
||||
{
|
||||
this.item.Flatten(view3DWidget.Scene.UndoBuffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
// try to ungroup it
|
||||
sceneContext.Scene.UngroupSelection();
|
||||
}
|
||||
scene.SelectedItem = null;
|
||||
};
|
||||
toolbar.AddChild(flattenButton);
|
||||
|
|
@ -387,7 +396,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
|
||||
var selectedItem = scene.SelectedItem;
|
||||
|
||||
flattenButton.Enabled = selectedItem?.CanFlatten == true;
|
||||
flattenButton.Enabled = selectedItem != null
|
||||
&& (selectedItem is GroupObject3D
|
||||
|| selectedItem.GetType() == typeof(Object3D)
|
||||
|| selectedItem.CanFlatten);
|
||||
removeButton.Enabled = selectedItem != null;
|
||||
overflowButton.Enabled = selectedItem != null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,6 +73,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
|
|||
var selectedItem = scene.SelectedItem;
|
||||
if (selectedItem != null)
|
||||
{
|
||||
if(selectedItem.CanFlatten)
|
||||
{
|
||||
selectedItem.Flatten(scene.UndoBuffer);
|
||||
scene.SelectedItem = null;
|
||||
return;
|
||||
}
|
||||
bool isGroupItemType = selectedItem.Children.Count > 0;
|
||||
|
||||
// If not a Group ItemType, look for mesh volumes and split into distinct objects if found
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue