From 848708c36cc71e2272ccd5fc1ac36f2661a34cf7 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Sat, 24 Jun 2017 12:35:02 -0700 Subject: [PATCH] Revise ViewGCodeWidget naming to clarify behavior --- MatterControl.csproj | 2 +- .../{ViewGcodeWidget.cs => GCode2DWidget.cs} | 6 +- PartPreviewWindow/LayerNavigationWidget.cs | 12 +-- PartPreviewWindow/SetLayerWidget.cs | 12 +-- PartPreviewWindow/ViewGcodeBasic.cs | 78 +++++++++---------- 5 files changed, 56 insertions(+), 54 deletions(-) rename PartPreviewWindow/{ViewGcodeWidget.cs => GCode2DWidget.cs} (98%) diff --git a/MatterControl.csproj b/MatterControl.csproj index fbd4675e7..3732ed501 100644 --- a/MatterControl.csproj +++ b/MatterControl.csproj @@ -242,7 +242,7 @@ - + diff --git a/PartPreviewWindow/ViewGcodeWidget.cs b/PartPreviewWindow/GCode2DWidget.cs similarity index 98% rename from PartPreviewWindow/ViewGcodeWidget.cs rename to PartPreviewWindow/GCode2DWidget.cs index cfc286c16..91a80b1c8 100644 --- a/PartPreviewWindow/ViewGcodeWidget.cs +++ b/PartPreviewWindow/GCode2DWidget.cs @@ -44,7 +44,7 @@ using MatterHackers.VectorMath; namespace MatterHackers.MatterControl.PartPreviewWindow { - public class ViewGcodeWidget : GuiWidget + public class GCode2DWidget : GuiWidget { public event EventHandler DoneLoading; @@ -125,7 +125,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private View3DConfig options; private PrinterConfig printer; - public ViewGcodeWidget(Vector2 gridSizeMm, Vector2 gridCenterMm, ReportProgressRatio progressReporter) + public GCode2DWidget(Vector2 gridSizeMm, Vector2 gridCenterMm, ReportProgressRatio progressReporter) { options = ApplicationController.Instance.Options.View3D; printer = ApplicationController.Instance.Printer; @@ -214,6 +214,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { printer.BedPlate.GCodeRenderer?.Render(graphics2D, renderInfo); } + + this.DebugShowBounds = true; } } diff --git a/PartPreviewWindow/LayerNavigationWidget.cs b/PartPreviewWindow/LayerNavigationWidget.cs index 6282ce062..f4bd08a62 100644 --- a/PartPreviewWindow/LayerNavigationWidget.cs +++ b/PartPreviewWindow/LayerNavigationWidget.cs @@ -35,21 +35,21 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public class LayerNavigationWidget : FlowLayoutWidget { private TextWidget layerCountTextWidget; - private ViewGcodeWidget gcodeViewWidget; + private GCode2DWidget gcode2DWidget; private PrinterConfig printer; - public LayerNavigationWidget(ViewGcodeWidget gcodeViewWidget, TextImageButtonFactory buttonFactory) + public LayerNavigationWidget(GCode2DWidget gcode2DWidget, TextImageButtonFactory buttonFactory) : base(FlowDirection.LeftToRight) { - this.gcodeViewWidget = gcodeViewWidget; + this.gcode2DWidget = gcode2DWidget; printer = ApplicationController.Instance.Printer; var prevLayerButton = buttonFactory.Generate("<<"); prevLayerButton.Click += (s, e) => { - gcodeViewWidget.ActiveLayerIndex = (gcodeViewWidget.ActiveLayerIndex - 1); + gcode2DWidget.ActiveLayerIndex = (gcode2DWidget.ActiveLayerIndex - 1); }; this.AddChild(prevLayerButton); @@ -65,7 +65,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow var nextLayerButton = buttonFactory.Generate(">>"); nextLayerButton.Click += (s, e) => { - gcodeViewWidget.ActiveLayerIndex = (gcodeViewWidget.ActiveLayerIndex + 1); + gcode2DWidget.ActiveLayerIndex = (gcode2DWidget.ActiveLayerIndex + 1); }; this.AddChild(nextLayerButton); } @@ -75,7 +75,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { if (printer.BedPlate.LoadedGCode != null) { - layerCountTextWidget.Text = string.Format("{0} / {1}", gcodeViewWidget.ActiveLayerIndex + 1, printer.BedPlate.LoadedGCode.NumChangesInZ.ToString()); + layerCountTextWidget.Text = string.Format("{0} / {1}", gcode2DWidget.ActiveLayerIndex + 1, printer.BedPlate.LoadedGCode.NumChangesInZ.ToString()); } base.OnDraw(graphics2D); diff --git a/PartPreviewWindow/SetLayerWidget.cs b/PartPreviewWindow/SetLayerWidget.cs index 4d156de84..09e815359 100644 --- a/PartPreviewWindow/SetLayerWidget.cs +++ b/PartPreviewWindow/SetLayerWidget.cs @@ -35,7 +35,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { public class SetLayerWidget : FlowLayoutWidget { - public SetLayerWidget(ViewGcodeWidget gcodeViewWidget, TextImageButtonFactory buttonFactory) + public SetLayerWidget(GCode2DWidget gcode2DWidget, TextImageButtonFactory buttonFactory) : base(FlowDirection.LeftToRight) { var editCurrentLayerIndex = new NumberEdit(1, pixelWidth: 40) @@ -46,21 +46,21 @@ namespace MatterHackers.MatterControl.PartPreviewWindow }; editCurrentLayerIndex.EditComplete += (s, e) => { - gcodeViewWidget.ActiveLayerIndex = ((int)editCurrentLayerIndex.Value - 1); - editCurrentLayerIndex.Value = gcodeViewWidget.ActiveLayerIndex + 1; + gcode2DWidget.ActiveLayerIndex = ((int)editCurrentLayerIndex.Value - 1); + editCurrentLayerIndex.Value = gcode2DWidget.ActiveLayerIndex + 1; }; this.AddChild(editCurrentLayerIndex); - gcodeViewWidget.ActiveLayerChanged += (s, e) => + gcode2DWidget.ActiveLayerChanged += (s, e) => { - editCurrentLayerIndex.Value = gcodeViewWidget.ActiveLayerIndex + 1; + editCurrentLayerIndex.Value = gcode2DWidget.ActiveLayerIndex + 1; }; var setLayerButton = buttonFactory.Generate("Go".Localize()); setLayerButton.VAnchor = VAnchor.ParentCenter; setLayerButton.Click += (s, e) => { - gcodeViewWidget.ActiveLayerIndex = ((int)editCurrentLayerIndex.Value - 1); + gcode2DWidget.ActiveLayerIndex = ((int)editCurrentLayerIndex.Value - 1); }; this.AddChild(setLayerButton); } diff --git a/PartPreviewWindow/ViewGcodeBasic.cs b/PartPreviewWindow/ViewGcodeBasic.cs index c212f70ef..6c845723a 100644 --- a/PartPreviewWindow/ViewGcodeBasic.cs +++ b/PartPreviewWindow/ViewGcodeBasic.cs @@ -52,7 +52,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public DoubleSolidSlider layerRenderRatioSlider; private TextWidget gcodeProcessingStateInfoText; - private ViewGcodeWidget gcodeViewWidget; + private GCode2DWidget gcode2DWidget; private PrintItemWrapper printItem => ApplicationController.Instance.ActivePrintItem; private bool startedSliceFromGenerateButton = false; private Button generateGCodeButton; @@ -173,7 +173,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } meshViewerWidget = null; - gcodeViewWidget = null; + gcode2DWidget = null; gcodeProcessingStateInfoText = null; FlowLayoutWidget mainContainerTopToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); @@ -315,7 +315,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { if (gcodeDisplayWidget.Visible) { - gcodeViewWidget.CenterPartInView(); + gcode2DWidget.CenterPartInView(); } else { @@ -341,16 +341,16 @@ namespace MatterHackers.MatterControl.PartPreviewWindow switch (e.TransformMode) { case ViewControls3DButtons.Translate: - if (gcodeViewWidget != null) + if (gcode2DWidget != null) { - gcodeViewWidget.TransformState = ViewGcodeWidget.ETransformState.Move; + gcode2DWidget.TransformState = GCode2DWidget.ETransformState.Move; } meshViewerWidget.TrackballTumbleWidget.TransformState = TrackBallController.MouseDownType.Translation; break; case ViewControls3DButtons.Scale: - if (gcodeViewWidget != null) + if (gcode2DWidget != null) { - gcodeViewWidget.TransformState = ViewGcodeWidget.ETransformState.Scale; + gcode2DWidget.TransformState = GCode2DWidget.ETransformState.Scale; } meshViewerWidget.TrackballTumbleWidget.TransformState = TrackBallController.MouseDownType.Scale; break; @@ -415,12 +415,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow GCodeRenderer.ExtrusionColor = ActiveTheme.Instance.PrimaryAccentColor; GCodeRenderInfo renderInfo = new GCodeRenderInfo(0, - Math.Min(gcodeViewWidget.ActiveLayerIndex + 1, loadedGCode.NumChangesInZ), - gcodeViewWidget.TotalTransform, + Math.Min(gcode2DWidget.ActiveLayerIndex + 1, loadedGCode.NumChangesInZ), + gcode2DWidget.TotalTransform, 1, GetRenderType(), - gcodeViewWidget.FeatureToStartOnRatio0To1, - gcodeViewWidget.FeatureToEndOnRatio0To1, + gcode2DWidget.FeatureToStartOnRatio0To1, + gcode2DWidget.FeatureToEndOnRatio0To1, new Vector2[] { ActiveSliceSettings.Instance.Helpers.ExtruderOffset(0), ActiveSliceSettings.Instance.Helpers.ExtruderOffset(1) }, MeshViewerWidget.GetMaterialColor); @@ -461,7 +461,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { string timeRemainingText = "---"; - if (gcodeViewWidget != null && loadedGCode != null) + if (gcode2DWidget != null && loadedGCode != null) { int secondsRemaining = (int)loadedGCode.Instruction(0).secondsToEndFromHere; int hoursRemaining = (int)(secondsRemaining / (60 * 60)); @@ -757,11 +757,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow UserSettings.Instance.set("LayerViewDefault", "2D Layer"); // HACK: Getting the Layer2D view to show content only works if CenterPartInView is called after the control is visible and after some cycles have passed - UiThread.RunOnIdle(gcodeViewWidget.CenterPartInView); + UiThread.RunOnIdle(gcode2DWidget.CenterPartInView); } meshViewerWidget.Visible = inLayers3DMode; - gcodeViewWidget.Visible = !inLayers3DMode; + gcode2DWidget.Visible = !inLayers3DMode; } private void HookUpGCodeMessagesWhenDonePrinting(object sender, EventArgs e) @@ -789,12 +789,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private GuiWidget CreateGCodeViewWidget(string pathAndFileName) { - gcodeViewWidget = new ViewGcodeWidget(new Vector2(viewerVolume.x, viewerVolume.y), bedCenter, LoadProgress_Changed); - gcodeViewWidget.DoneLoading += DoneLoadingGCode; - gcodeViewWidget.Visible = (activeViewMode == PartViewMode.Layers2D); + gcode2DWidget = new GCode2DWidget(new Vector2(viewerVolume.x, viewerVolume.y), bedCenter, LoadProgress_Changed); + gcode2DWidget.DoneLoading += DoneLoadingGCode; + gcode2DWidget.Visible = (activeViewMode == PartViewMode.Layers2D); partToStartLoadingOnFirstDraw = pathAndFileName; - return gcodeViewWidget; + return gcode2DWidget; } public override void OnDraw(Graphics2D graphics2D) @@ -808,7 +808,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow if (partToStartLoadingOnFirstDraw != null) { - gcodeViewWidget.LoadInBackground(partToStartLoadingOnFirstDraw); + gcode2DWidget.LoadInBackground(partToStartLoadingOnFirstDraw); partToStartLoadingOnFirstDraw = null; } base.OnDraw(graphics2D); @@ -818,16 +818,16 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { if (keyEvent.KeyCode == Keys.Up) { - if (gcodeViewWidget != null) + if (gcode2DWidget != null) { - gcodeViewWidget.ActiveLayerIndex = (gcodeViewWidget.ActiveLayerIndex + 1); + gcode2DWidget.ActiveLayerIndex = (gcode2DWidget.ActiveLayerIndex + 1); } } else if (keyEvent.KeyCode == Keys.Down) { - if (gcodeViewWidget != null) + if (gcode2DWidget != null) { - gcodeViewWidget.ActiveLayerIndex = (gcodeViewWidget.ActiveLayerIndex - 1); + gcode2DWidget.ActiveLayerIndex = (gcode2DWidget.ActiveLayerIndex - 1); } } } @@ -866,7 +866,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private void DoneLoadingGCode(object sender, EventArgs e) { SetProcessingMessage(""); - if (gcodeViewWidget != null + if (gcode2DWidget != null && loadedGCode == null) { // If we have finished loading the gcode and the source file exists but we don't have any loaded gcode it is because the loader decided to not load it. @@ -880,7 +880,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow } } - if (gcodeViewWidget != null + if (gcode2DWidget != null && loadedGCode?.LineCount > 0) { // TODO: Shouldn't we be clearing children from some known container and rebuilding? @@ -894,20 +894,20 @@ namespace MatterHackers.MatterControl.PartPreviewWindow viewControlsToggle.Visible = true; setLayerWidget?.Close(); - setLayerWidget = new SetLayerWidget(gcodeViewWidget, ApplicationController.Instance.Theme.GCodeLayerButtons); + setLayerWidget = new SetLayerWidget(gcode2DWidget, ApplicationController.Instance.Theme.GCodeLayerButtons); setLayerWidget.VAnchor = Agg.UI.VAnchor.ParentTop; layerSelectionButtonsPanel.AddChild(setLayerWidget); navigationWidget?.Close(); - navigationWidget = new LayerNavigationWidget(gcodeViewWidget, ApplicationController.Instance.Theme.GCodeLayerButtons); + navigationWidget = new LayerNavigationWidget(gcode2DWidget, ApplicationController.Instance.Theme.GCodeLayerButtons); navigationWidget.Margin = new BorderDouble(0, 0, 20, 0); layerSelectionButtonsPanel.AddChild(navigationWidget); selectLayerSlider?.Close(); selectLayerSlider = new SolidSlider(new Vector2(), sliderWidth, 0, loadedGCode.NumChangesInZ - 1, Orientation.Vertical); selectLayerSlider.ValueChanged += new EventHandler(selectLayerSlider_ValueChanged); - gcodeViewWidget.ActiveLayerChanged += new EventHandler(gcodeViewWidget_ActiveLayerChanged); + gcode2DWidget.ActiveLayerChanged += new EventHandler(gcodeViewWidget_ActiveLayerChanged); AddChild(selectLayerSlider); layerRenderRatioSlider?.Close(); @@ -921,8 +921,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow SetSliderSizes(); // let's change the active layer so that it is set to the first layer with data - gcodeViewWidget.ActiveLayerIndex = gcodeViewWidget.ActiveLayerIndex + 1; - gcodeViewWidget.ActiveLayerIndex = gcodeViewWidget.ActiveLayerIndex - 1; + gcode2DWidget.ActiveLayerIndex = gcode2DWidget.ActiveLayerIndex + 1; + gcode2DWidget.ActiveLayerIndex = gcode2DWidget.ActiveLayerIndex - 1; BoundsChanged += new EventHandler(PartPreviewGCode_BoundsChanged); @@ -937,29 +937,29 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private void layerStartRenderRatioSlider_ValueChanged(object sender, EventArgs e) { - gcodeViewWidget.FeatureToStartOnRatio0To1 = layerRenderRatioSlider.FirstValue; - gcodeViewWidget.FeatureToEndOnRatio0To1 = layerRenderRatioSlider.SecondValue; - gcodeViewWidget.Invalidate(); + gcode2DWidget.FeatureToStartOnRatio0To1 = layerRenderRatioSlider.FirstValue; + gcode2DWidget.FeatureToEndOnRatio0To1 = layerRenderRatioSlider.SecondValue; + gcode2DWidget.Invalidate(); } private void layerEndRenderRatioSlider_ValueChanged(object sender, EventArgs e) { - gcodeViewWidget.FeatureToStartOnRatio0To1 = layerRenderRatioSlider.FirstValue; - gcodeViewWidget.FeatureToEndOnRatio0To1 = layerRenderRatioSlider.SecondValue; - gcodeViewWidget.Invalidate(); + gcode2DWidget.FeatureToStartOnRatio0To1 = layerRenderRatioSlider.FirstValue; + gcode2DWidget.FeatureToEndOnRatio0To1 = layerRenderRatioSlider.SecondValue; + gcode2DWidget.Invalidate(); } private void gcodeViewWidget_ActiveLayerChanged(object sender, EventArgs e) { - if (gcodeViewWidget.ActiveLayerIndex != (int)(selectLayerSlider.Value + .5)) + if (gcode2DWidget.ActiveLayerIndex != (int)(selectLayerSlider.Value + .5)) { - selectLayerSlider.Value = gcodeViewWidget.ActiveLayerIndex; + selectLayerSlider.Value = gcode2DWidget.ActiveLayerIndex; } } private void selectLayerSlider_ValueChanged(object sender, EventArgs e) { - gcodeViewWidget.ActiveLayerIndex = (int)(selectLayerSlider.Value + .5); + gcode2DWidget.ActiveLayerIndex = (int)(selectLayerSlider.Value + .5); } private void PartPreviewGCode_BoundsChanged(object sender, EventArgs e)