From f5287fac1a7c579118590e7ef419588cf9d25898 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 16 Feb 2018 18:49:36 -0800 Subject: [PATCH] Add persistent GCode sidebar, add db settings to track width --- ApplicationView/PrinterModels.cs | 18 ++++++++++++++++++ PartPreviewWindow/PrinterTabPage.cs | 18 +++++++++++++++++- SettingsManagement/UserSettings.cs | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/ApplicationView/PrinterModels.cs b/ApplicationView/PrinterModels.cs index c72ed90c0..751b25cbf 100644 --- a/ApplicationView/PrinterModels.cs +++ b/ApplicationView/PrinterModels.cs @@ -712,6 +712,24 @@ namespace MatterHackers.MatterControl UserSettings.Instance.set(UserSettingsKey.SelectedObjectPanelWidth, minimumValue.ToString()); } } + + public double GCodePanelWidth + { + get + { + if (double.TryParse(UserSettings.Instance.get(UserSettingsKey.GCodePanelWidth), out double controlWidth)) + { + return Math.Max(controlWidth, 150); + } + + return 150; + } + set + { + var minimumValue = Math.Max(value, 150); + UserSettings.Instance.set(UserSettingsKey.GCodePanelWidth, minimumValue.ToString()); + } + } } public class PrinterConfig diff --git a/PartPreviewWindow/PrinterTabPage.cs b/PartPreviewWindow/PrinterTabPage.cs index 99611f9a8..556b1d8a0 100644 --- a/PartPreviewWindow/PrinterTabPage.cs +++ b/PartPreviewWindow/PrinterTabPage.cs @@ -55,6 +55,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private SliceLayerSelector layerScrollbar; internal PrinterConfig printer; internal GCode3DWidget gcode3DWidget; + private ResizeContainer gcodeContainer; internal PrinterActionsBar printerActionsBar; private DockingTabControl sideBar; private SliceSettingsWidget sliceSettingsWidget; @@ -160,9 +161,22 @@ namespace MatterHackers.MatterControl.PartPreviewWindow Name = "GCode3DWidget", HAnchor = HAnchor.Stretch, VAnchor = VAnchor.Stretch, + BackgroundColor = theme.InteractionLayerOverlayColor, Visible = false }; - view3DWidget.InteractionLayer.AddChild(gcode3DWidget, position); + + gcodeContainer = new ResizeContainer(gcode3DWidget) + { + Width = printer?.ViewState.GCodePanelWidth ?? 200, + VAnchor = VAnchor.Stretch, + HAnchor = HAnchor.Right, + SpliterBarColor = theme.SplitterBackground, + SplitterWidth = theme.SplitterWidth, + Visible = false, + }; + gcodeContainer.AddChild(gcode3DWidget); + + view3DWidget.InteractionLayer.AddChild(gcodeContainer, position + 1); var viewerVolume = sceneContext.ViewerVolume; @@ -229,6 +243,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow view3DWidget.meshViewerWidget.ModelView = viewMode == PartViewMode.Model; + gcodeContainer.Visible = showSliceLayers; + if (showSliceLayers) { printer.Bed.Scene.ClearSelection(); diff --git a/SettingsManagement/UserSettings.cs b/SettingsManagement/UserSettings.cs index 4cc19c1d2..c5e5256a2 100644 --- a/SettingsManagement/UserSettings.cs +++ b/SettingsManagement/UserSettings.cs @@ -24,6 +24,7 @@ namespace MatterHackers.MatterControl public const string LibraryViewWidth = nameof(LibraryViewWidth); public const string SelectedObjectPanelWidth = nameof(SelectedObjectPanelWidth); public const string ConfigurePrinter_CurrentTab = nameof(ConfigurePrinter_CurrentTab); + public const string GCodePanelWidth = nameof(GCodePanelWidth); } public class UserSettings