diff --git a/MatterControlApplication.cs b/MatterControlApplication.cs index 20ec90929..1a51df5cb 100644 --- a/MatterControlApplication.cs +++ b/MatterControlApplication.cs @@ -278,7 +278,9 @@ namespace MatterHackers.MatterControl base.OnDraw(graphics2D); totalDrawTime.Stop(); +#if !DEBUG if (ShowMemoryUsed) +#endif { long memory = GC.GetTotalMemory(false); this.Title = string.Format("Allocated = {0:n0} : {1}ms, d{2} Size = {3}x{4}", memory, totalDrawTime.ElapsedMilliseconds, drawCount++, this.Width, this.Height); diff --git a/PartPreviewWindow/GcodeViewBasic.cs b/PartPreviewWindow/GcodeViewBasic.cs index 52ce0dc97..8320dd03d 100644 --- a/PartPreviewWindow/GcodeViewBasic.cs +++ b/PartPreviewWindow/GcodeViewBasic.cs @@ -119,33 +119,37 @@ namespace MatterHackers.MatterControl.PartPreviewWindow gcodeDispalyWidget = new GuiWidget(HAnchor.ParentLeftRight, Agg.UI.VAnchor.ParentBottomTop); - string startingMessage = new LocalizedString("Loading GCode...").Translated; - if (Path.GetExtension(printItem.FileLocation).ToUpper() == ".GCODE") + string startingMessage = new LocalizedString("No GCode Available...").Translated; + if (printItem != null) { - gcodeDispalyWidget.AddChild(CreateGCodeViewWidget(printItem.FileLocation)); - } - else - { - string gcodePathAndFileName = printItem.GCodePathAndFileName; - bool gcodeFileIsComplete = printItem.IsGCodeFileComplete(gcodePathAndFileName); - - if (gcodeProcessingStateInfoText != null && gcodeProcessingStateInfoText.Text == "Slicing Error") + startingMessage = new LocalizedString("Loading GCode...").Translated; + if (Path.GetExtension(printItem.FileLocation).ToUpper() == ".GCODE") { - startingMessage = "Slicing Error. Please review your slice settings."; + gcodeDispalyWidget.AddChild(CreateGCodeViewWidget(printItem.FileLocation)); } else { - startingMessage = new LocalizedString("Press 'generate' to view layers").Translated; - } + string gcodePathAndFileName = printItem.GCodePathAndFileName; + bool gcodeFileIsComplete = printItem.IsGCodeFileComplete(gcodePathAndFileName); - if (File.Exists(gcodePathAndFileName) && gcodeFileIsComplete) - { - gcodeDispalyWidget.AddChild(CreateGCodeViewWidget(gcodePathAndFileName)); - } + if (gcodeProcessingStateInfoText != null && gcodeProcessingStateInfoText.Text == "Slicing Error") + { + startingMessage = "Slicing Error. Please review your slice settings."; + } + else + { + startingMessage = new LocalizedString("Press 'generate' to view layers").Translated; + } - // we only hook these up to make sure we can regenerate the gcode when we want - printItem.SlicingOutputMessage += sliceItem_SlicingOutputMessage; - printItem.Done += new EventHandler(sliceItem_Done); + if (File.Exists(gcodePathAndFileName) && gcodeFileIsComplete) + { + gcodeDispalyWidget.AddChild(CreateGCodeViewWidget(gcodePathAndFileName)); + } + + // we only hook these up to make sure we can regenerate the gcode when we want + printItem.SlicingOutputMessage += sliceItem_SlicingOutputMessage; + printItem.Done += new EventHandler(sliceItem_Done); + } } centerPartPreviewAndControls.AddChild(gcodeDispalyWidget); @@ -583,11 +587,14 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public override void OnClosed(EventArgs e) { - printItem.SlicingOutputMessage -= sliceItem_SlicingOutputMessage; - printItem.Done -= new EventHandler(sliceItem_Done); - if (startedSliceFromGenerateButton && printItem.CurrentlySlicing) + if (printItem != null) { - SlicingQueue.Instance.CancelCurrentSlicing(); + printItem.SlicingOutputMessage -= sliceItem_SlicingOutputMessage; + printItem.Done -= new EventHandler(sliceItem_Done); + if (startedSliceFromGenerateButton && printItem.CurrentlySlicing) + { + SlicingQueue.Instance.CancelCurrentSlicing(); + } } base.OnClosed(e); } diff --git a/PartPreviewWindow/View3DTransfromPart.cs b/PartPreviewWindow/View3DTransfromPart.cs index 06b60f0ba..9f63c9a9e 100644 --- a/PartPreviewWindow/View3DTransfromPart.cs +++ b/PartPreviewWindow/View3DTransfromPart.cs @@ -408,9 +408,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow AddHandlers(); - // don't load the mesh until we get all the rest of the interface built - meshViewerWidget.LoadMesh(printItemWrapper.FileLocation); - meshViewerWidget.LoadDone += new EventHandler(meshViewerWidget_LoadDone); + if (printItemWrapper != null) + { + // don't load the mesh until we get all the rest of the interface built + meshViewerWidget.LoadMesh(printItemWrapper.FileLocation); + meshViewerWidget.LoadDone += new EventHandler(meshViewerWidget_LoadDone); + } } private void MakeCopyOfMesh()