diff --git a/DesignTools/Operations/Align3D.cs b/DesignTools/Operations/Align3D.cs index d206a3d9e..d4e524e4b 100644 --- a/DesignTools/Operations/Align3D.cs +++ b/DesignTools/Operations/Align3D.cs @@ -328,9 +328,9 @@ namespace MatterHackers.MatterControl.DesignTools.Operations public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Operations/ArrayLinear3D.cs b/DesignTools/Operations/ArrayLinear3D.cs index e26bdd357..919ce1527 100644 --- a/DesignTools/Operations/ArrayLinear3D.cs +++ b/DesignTools/Operations/ArrayLinear3D.cs @@ -59,9 +59,9 @@ namespace MatterHackers.MatterControl.DesignTools.Operations public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Operations/ArrayRadial3D.cs b/DesignTools/Operations/ArrayRadial3D.cs index edd5bacc2..570d5fb4c 100644 --- a/DesignTools/Operations/ArrayRadial3D.cs +++ b/DesignTools/Operations/ArrayRadial3D.cs @@ -73,9 +73,9 @@ namespace MatterHackers.MatterControl.DesignTools.Operations public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Operations/CurveObject3D.cs b/DesignTools/Operations/CurveObject3D.cs index 51bb98827..2418aee4f 100644 --- a/DesignTools/Operations/CurveObject3D.cs +++ b/DesignTools/Operations/CurveObject3D.cs @@ -180,9 +180,9 @@ namespace MatterHackers.MatterControl.DesignTools public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Operations/FitToBounds3D.cs b/DesignTools/Operations/FitToBounds3D.cs index 3c9bbfcbe..eb07554cf 100644 --- a/DesignTools/Operations/FitToBounds3D.cs +++ b/DesignTools/Operations/FitToBounds3D.cs @@ -119,9 +119,9 @@ namespace MatterHackers.MatterControl.DesignTools.Operations public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Operations/Image/ImageToPath.cs b/DesignTools/Operations/Image/ImageToPath.cs index 06abe4db4..b87815644 100644 --- a/DesignTools/Operations/Image/ImageToPath.cs +++ b/DesignTools/Operations/Image/ImageToPath.cs @@ -222,7 +222,7 @@ namespace MatterHackers.MatterControl.DesignTools public override void OnInvalidate(InvalidateArgs invalidateType) { - if (invalidateType.InvalidateType.HasFlag(InvalidateType.Image) + if (invalidateType.InvalidateType == InvalidateType.Image && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Operations/Image/LinearExtrude.cs b/DesignTools/Operations/Image/LinearExtrude.cs index 6e94c0543..cfa33c125 100644 --- a/DesignTools/Operations/Image/LinearExtrude.cs +++ b/DesignTools/Operations/Image/LinearExtrude.cs @@ -41,6 +41,9 @@ namespace MatterHackers.MatterControl.DesignTools { public double Height { get; set; } = 5; + public override bool CanApply => true; + public override bool CanRemove => true; + [JsonIgnore] private IVertexSource VertexSource { @@ -63,9 +66,9 @@ namespace MatterHackers.MatterControl.DesignTools public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Path)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Path) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Operations/Path/SmoothPath.cs b/DesignTools/Operations/Path/SmoothPath.cs index 97f0edbb1..766e9e46e 100644 --- a/DesignTools/Operations/Path/SmoothPath.cs +++ b/DesignTools/Operations/Path/SmoothPath.cs @@ -61,9 +61,9 @@ namespace MatterHackers.MatterControl.DesignTools.Operations public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Path)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Path) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Operations/PinchObject3D.cs b/DesignTools/Operations/PinchObject3D.cs index 216f1e1f1..c21e2c2db 100644 --- a/DesignTools/Operations/PinchObject3D.cs +++ b/DesignTools/Operations/PinchObject3D.cs @@ -101,9 +101,9 @@ namespace MatterHackers.MatterControl.DesignTools public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/DesignTools/Primitives/BaseObject3D.cs b/DesignTools/Primitives/BaseObject3D.cs index 26c7cfc08..805797b1f 100644 --- a/DesignTools/Primitives/BaseObject3D.cs +++ b/DesignTools/Primitives/BaseObject3D.cs @@ -105,10 +105,10 @@ namespace MatterHackers.MatterControl.DesignTools public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Path) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Path + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/PartPreviewWindow/SelectedObjectPanel.cs b/PartPreviewWindow/SelectedObjectPanel.cs index 800abd896..736a7e6aa 100644 --- a/PartPreviewWindow/SelectedObjectPanel.cs +++ b/PartPreviewWindow/SelectedObjectPanel.cs @@ -183,14 +183,21 @@ namespace MatterHackers.MatterControl.PartPreviewWindow scene.SelectionChanged += (s, e) => removeButton.Enabled = scene.SelectedItem?.CanRemove == true; toolbar.AddChild(removeButton); - // Add container used to host the current specialized editor for the selection - selectedObjectEditorColumn.AddChild(editorPanel = new FlowLayoutWidget(FlowDirection.TopToBottom) + var scrollableEditor = new ScrollableWidget(true) + { + HAnchor = HAnchor.Stretch, + VAnchor = VAnchor.Stretch + }; + scrollableEditor.AddChild(editorPanel = new FlowLayoutWidget(FlowDirection.TopToBottom) { HAnchor = HAnchor.Stretch, VAnchor = VAnchor.Fit, Padding = new BorderDouble(top: 10) }); + scrollableEditor.ScrollArea.HAnchor = HAnchor.Stretch; + + selectedObjectEditorColumn.AddChild(scrollableEditor); inlineTitleEdit = new InlineTitleEdit("", theme, "Object Name"); inlineTitleEdit.TitleChanged += (s, e) => @@ -201,15 +208,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } }; - var selectedObjectEditorColumnBody = new GuiWidget() - { - HAnchor = HAnchor.Stretch, - VAnchor = VAnchor.Fit - }; - - selectedObjectEditorColumnBody.AddChild(selectedObjectEditorColumn); - - selectedObjectEditorSection = new SectionWidget("Editor", selectedObjectEditorColumnBody, theme, serializationKey: UserSettingsKey.EditorPanelExpanded, defaultExpansion: true) + selectedObjectEditorSection = new SectionWidget("Editor", selectedObjectEditorColumn, theme, serializationKey: UserSettingsKey.EditorPanelExpanded, defaultExpansion: true, setContentVAnchor: false) { VAnchor = VAnchor.Fit, }; diff --git a/PartPreviewWindow/View3D/Actions/CombineObject3D.cs b/PartPreviewWindow/View3D/Actions/CombineObject3D.cs index 9311998dc..26b5aa192 100644 --- a/PartPreviewWindow/View3D/Actions/CombineObject3D.cs +++ b/PartPreviewWindow/View3D/Actions/CombineObject3D.cs @@ -50,9 +50,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/PartPreviewWindow/View3D/Actions/IntersectionObject3D.cs b/PartPreviewWindow/View3D/Actions/IntersectionObject3D.cs index 537b8788d..fb1685930 100644 --- a/PartPreviewWindow/View3D/Actions/IntersectionObject3D.cs +++ b/PartPreviewWindow/View3D/Actions/IntersectionObject3D.cs @@ -50,9 +50,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D.cs b/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D.cs index 4efb3b150..2ddd3a154 100644 --- a/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D.cs +++ b/PartPreviewWindow/View3D/Actions/SubtractAndReplaceObject3D.cs @@ -53,9 +53,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs b/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs index 002b392eb..273b5266f 100644 --- a/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs +++ b/PartPreviewWindow/View3D/Actions/SubtractObject3D.cs @@ -110,9 +110,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D public override void OnInvalidate(InvalidateArgs invalidateType) { - if ((invalidateType.InvalidateType.HasFlag(InvalidateType.Content) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Matrix) - || invalidateType.InvalidateType.HasFlag(InvalidateType.Mesh)) + if ((invalidateType.InvalidateType == InvalidateType.Content + || invalidateType.InvalidateType == InvalidateType.Matrix + || invalidateType.InvalidateType == InvalidateType.Mesh) && invalidateType.Source != this && !RebuildSuspended) { diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index fc25dd0e2..9b05c840e 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit fc25dd0e2047fff38307d0fc4b4121f524f4282c +Subproject commit 9b05c840e4c3b32ae8e95d5d7c73da072430edc8