From 248ae2aa4898f439805286394416597addfab3b1 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 13:57:44 -0700 Subject: [PATCH 01/13] Add HorizontalSpacer to the ignored types list - Issue MatterHackers/MCCentral#3031 Empty item in overflow list --- PartPreviewWindow/View3D/PrinterBar/OverflowBar.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PartPreviewWindow/View3D/PrinterBar/OverflowBar.cs b/PartPreviewWindow/View3D/PrinterBar/OverflowBar.cs index bdb6d3585..29a5e4bca 100644 --- a/PartPreviewWindow/View3D/PrinterBar/OverflowBar.cs +++ b/PartPreviewWindow/View3D/PrinterBar/OverflowBar.cs @@ -42,7 +42,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public class OverflowBar : Toolbar { private static HashSet ignoredTypes = new HashSet { typeof(HorizontalLine), typeof(SearchInputBox) }; - private static HashSet ignoredInMenuTypes = new HashSet { typeof(VerticalLine), typeof(HorizontalLine), typeof(SearchInputBox) }; + private static HashSet ignoredInMenuTypes = new HashSet { typeof(VerticalLine), typeof(HorizontalLine), typeof(SearchInputBox), typeof(HorizontalSpacer) }; public OverflowBar(ThemeConfig theme) { From 56e1d1a6a1befd276a33a367bb5d83af5753f6d8 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:33:32 -0700 Subject: [PATCH 02/13] Move properties into base --- SlicerConfiguration/SettingsRow.cs | 7 ++++++- SlicerConfiguration/SliceSettingsWidget.cs | 9 +-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/SlicerConfiguration/SettingsRow.cs b/SlicerConfiguration/SettingsRow.cs index 0a93b12d4..f79867392 100644 --- a/SlicerConfiguration/SettingsRow.cs +++ b/SlicerConfiguration/SettingsRow.cs @@ -53,9 +53,14 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public SettingsRow(string title, string helpText, Color textColor, ThemeConfig theme, ImageBuffer icon = null, bool enforceGutter = false, bool fullRowSelect = false) { this.theme = theme; - this.MinimumSize = new Vector2(0, 28); this.fullRowSelect = fullRowSelect; + this.HAnchor = HAnchor.Stretch; + this.VAnchor = VAnchor.Fit; + this.MinimumSize = new Vector2(0, theme.ButtonHeight); + this.Border = new BorderDouble(bottom: 1); + this.BorderColor = theme.GetBorderColor((theme.Colors.IsDarkTheme) ? 3 : 5); + hoverColor = theme.MinimalShade; if (icon != null) diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index a5fb8fb94..2a285dc1d 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -628,14 +628,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration bool placeFieldInDedicatedRow = false; bool fullRowSelect = settingData.DataEditType == SliceSettingData.DataEditTypes.CHECK_BOX; - var settingsRow = new SliceSettingsRow(printer, settingsContext, settingData, textColor, theme, fullRowSelect: fullRowSelect) - { - HAnchor = HAnchor.Stretch, - VAnchor = VAnchor.Fit, - MinimumSize = new Vector2(0, theme.ButtonHeight), - Border = new BorderDouble(bottom: 1), - BorderColor = theme.GetBorderColor((theme.Colors.IsDarkTheme) ? 3 : 5) - }; + var settingsRow = new SliceSettingsRow(printer, settingsContext, settingData, textColor, theme, fullRowSelect: fullRowSelect); { switch (settingData.DataEditType) From 442cd97d68a096e8b67347db1d019b7b8fd36ef9 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:38:13 -0700 Subject: [PATCH 03/13] Fix typo --- ApplicationView/ApplicationController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ApplicationView/ApplicationController.cs b/ApplicationView/ApplicationController.cs index 762b091fd..f4105d4e6 100644 --- a/ApplicationView/ApplicationController.cs +++ b/ApplicationView/ApplicationController.cs @@ -1717,7 +1717,7 @@ namespace MatterHackers.MatterControl container.AddChild(printAreaButton); } - this. BindBedOptions(container, bedButton, printAreaButton, sceneContext.RendererOptions); + this.BindBedOptions(container, bedButton, printAreaButton, sceneContext.RendererOptions); return container; } From 856ab867bf663b4da078ddf6f555303bf9936a40 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:39:57 -0700 Subject: [PATCH 04/13] Use label styling from SettingsItem --- SlicerConfiguration/SettingsRow.cs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/SlicerConfiguration/SettingsRow.cs b/SlicerConfiguration/SettingsRow.cs index f79867392..343991c3b 100644 --- a/SlicerConfiguration/SettingsRow.cs +++ b/SlicerConfiguration/SettingsRow.cs @@ -33,6 +33,7 @@ using MatterHackers.Agg; using MatterHackers.Agg.Image; using MatterHackers.Agg.UI; using MatterHackers.Localizations; +using MatterHackers.MatterControl.CustomWidgets; using MatterHackers.VectorMath; namespace MatterHackers.MatterControl.SlicerConfiguration @@ -90,15 +91,9 @@ namespace MatterHackers.MatterControl.SlicerConfiguration Margin = new BorderDouble(right: 6) }); - GuiWidget nameArea; - this.AddChild(nameArea = new GuiWidget() - { - MinimumSize = new Vector2(50, 0), - HAnchor = HAnchor.Stretch, - VAnchor = VAnchor.Fit | VAnchor.Center, - DebugShowBounds = debugLayout - }); - nameArea.AddChild(settingsLabel = SettingsRow.CreateSettingsLabel(title, helpText, textColor)); + this.AddChild(settingsLabel = SettingsRow.CreateSettingsLabel(title, helpText, textColor)); + + this.AddChild(new HorizontalSpacer()); if (fullRowSelect) { @@ -108,11 +103,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public static GuiWidget CreateSettingsLabel(string label, string helpText, Color textColor) { - return new WrappedTextWidget(label, pointSize: 10, textColor: textColor) + return new TextWidget(label, textColor: textColor, pointSize: 10) { - VAnchor = VAnchor.Center | VAnchor.Fit, + AutoExpandBoundsToText = true, + VAnchor = VAnchor.Center, ToolTipText = helpText.Localize(), - Margin = new BorderDouble(0, 5, 5, 5), }; } From f29c8458febb181301f13ac5d4c0977d1bb16358 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:40:41 -0700 Subject: [PATCH 05/13] Reuse new SettingsRow type as base for SettingsItem --- .../ApplicationSettings/SettingsItem.cs | 36 ++----------------- 1 file changed, 3 insertions(+), 33 deletions(-) diff --git a/ConfigurationPage/ApplicationSettings/SettingsItem.cs b/ConfigurationPage/ApplicationSettings/SettingsItem.cs index 7e0c63ed1..e6df1d11f 100644 --- a/ConfigurationPage/ApplicationSettings/SettingsItem.cs +++ b/ConfigurationPage/ApplicationSettings/SettingsItem.cs @@ -1,14 +1,13 @@ using System; using MatterHackers.Agg; using MatterHackers.Agg.Image; -using MatterHackers.Agg.ImageProcessing; using MatterHackers.Agg.UI; using MatterHackers.MatterControl.CustomWidgets; -using MatterHackers.VectorMath; +using MatterHackers.MatterControl.SlicerConfiguration; namespace MatterHackers.MatterControl.ConfigurationPage { - public class SettingsItem : FlowLayoutWidget + public class SettingsItem : SettingsRow { public class ToggleSwitchConfig { @@ -35,39 +34,10 @@ namespace MatterHackers.MatterControl.ConfigurationPage } public SettingsItem (string text, Color textColor, GuiWidget settingsControls, GuiWidget optionalControls = null, ImageBuffer imageBuffer = null, bool enforceGutter = true) - : base (FlowDirection.LeftToRight) + : base (text, "", textColor, ApplicationController.Instance.Theme) { var theme = ApplicationController.Instance.Theme; this.SettingsControl = settingsControls; - this.HAnchor = HAnchor.Stretch; - this.MinimumSize = new Vector2(0, theme.ButtonHeight); - - if (imageBuffer != null) - { - this.AddChild(new ImageWidget(imageBuffer) - { - Margin = new BorderDouble(right: 6, left: 6), - VAnchor = VAnchor.Center - }); - } - else if (enforceGutter) - { - // Add an icon placeholder to get consistent label indenting on items lacking icons - this.AddChild(new GuiWidget() - { - Width = 24 + 12, - Height = 24, - Margin = new BorderDouble(0) - }); - } - - this.AddChild(new TextWidget(text, textColor: textColor, pointSize: theme.DefaultFontSize) - { - AutoExpandBoundsToText = true, - VAnchor = VAnchor.Center, - }); - - this.AddChild(new HorizontalSpacer()); if (optionalControls != null) { From b8f152302ab3b1569424a02d20694722ab04acdc Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:41:49 -0700 Subject: [PATCH 06/13] Revise calling syntax to modify only right padding of instance - Filter via Linq --- PartPreviewWindow/GCodeDetailsView.cs | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/PartPreviewWindow/GCodeDetailsView.cs b/PartPreviewWindow/GCodeDetailsView.cs index 411eccf00..62764c0ff 100644 --- a/PartPreviewWindow/GCodeDetailsView.cs +++ b/PartPreviewWindow/GCodeDetailsView.cs @@ -31,6 +31,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; +using System.Linq; using MatterHackers.Agg; using MatterHackers.Agg.Platform; using MatterHackers.Agg.UI; @@ -249,23 +250,22 @@ namespace MatterHackers.MatterControl.PartPreviewWindow void BuildMenu() { - foreach (var option in viewOptions) + foreach (var option in viewOptions.Where(option => option.IsVisible())) { - if (option.IsVisible()) - { - optionsContainer.AddChild( - new SettingsItem( - option.Title, - theme.Colors.PrimaryTextColor, - new SettingsItem.ToggleSwitchConfig() - { - Name = option.Title + " Toggle", - Checked = option.IsChecked(), - ToggleAction = option.SetValue - }, - enforceGutter: false) - ); - } + var settingsItem = new SettingsItem( + option.Title, + theme.Colors.PrimaryTextColor, + new SettingsItem.ToggleSwitchConfig() + { + Name = option.Title + " Toggle", + Checked = option.IsChecked(), + ToggleAction = option.SetValue + }, + enforceGutter: false); + + settingsItem.Padding = settingsItem.Padding.Clone(right: 8); + + optionsContainer.AddChild(settingsItem); } } From a07a459b13c2ea2fafddd8365e8e51fb69742522 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:42:13 -0700 Subject: [PATCH 07/13] Restore dropped localization --- SlicerConfiguration/SliceSettingsRow.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SlicerConfiguration/SliceSettingsRow.cs b/SlicerConfiguration/SliceSettingsRow.cs index 046312537..83e4225b2 100644 --- a/SlicerConfiguration/SliceSettingsRow.cs +++ b/SlicerConfiguration/SliceSettingsRow.cs @@ -50,7 +50,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration private Button restoreButton = null; public SliceSettingsRow(PrinterConfig printer, SettingsContext settingsContext, SliceSettingData settingData, Color textColor, ThemeConfig theme, bool fullRowSelect = false) - : base (settingData.PresentationName.Localize(), settingData.HelpText, textColor, theme, fullRowSelect: fullRowSelect) + : base (settingData.PresentationName.Localize(), settingData.HelpText.Localize(), textColor, theme, fullRowSelect: fullRowSelect) { this.printer = printer; this.settingData = settingData; From 70f7cbb55fae1776b396c3f9989d861d56347ff2 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:42:30 -0700 Subject: [PATCH 08/13] Refine padding under new layout --- PartPreviewWindow/GCode3DWidget.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/PartPreviewWindow/GCode3DWidget.cs b/PartPreviewWindow/GCode3DWidget.cs index ff016a1c9..2dec24a14 100644 --- a/PartPreviewWindow/GCode3DWidget.cs +++ b/PartPreviewWindow/GCode3DWidget.cs @@ -62,7 +62,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { HAnchor = HAnchor.Stretch, VAnchor = VAnchor.Fit, - Margin = new BorderDouble(right: 10) }); this.AddChild( From b0dd4ed5e2b35dcc7779fc12fb4f4f298fbbd066 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:49:11 -0700 Subject: [PATCH 09/13] Ensure null, not empty string, is set --- SlicerConfiguration/SettingsRow.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SlicerConfiguration/SettingsRow.cs b/SlicerConfiguration/SettingsRow.cs index 343991c3b..b09bdf36a 100644 --- a/SlicerConfiguration/SettingsRow.cs +++ b/SlicerConfiguration/SettingsRow.cs @@ -107,7 +107,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { AutoExpandBoundsToText = true, VAnchor = VAnchor.Center, - ToolTipText = helpText.Localize(), + ToolTipText = string.IsNullOrWhiteSpace(helpText) ? null : helpText, }; } From da3d33ec7c8fa624a217ab1e60e7214f2a68e01a Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:49:28 -0700 Subject: [PATCH 10/13] Turn off border on stand-alone item --- PartPreviewWindow/ModelOptionsPanel.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PartPreviewWindow/ModelOptionsPanel.cs b/PartPreviewWindow/ModelOptionsPanel.cs index 460148eea..ef20fc1fa 100644 --- a/PartPreviewWindow/ModelOptionsPanel.cs +++ b/PartPreviewWindow/ModelOptionsPanel.cs @@ -136,7 +136,8 @@ namespace MatterHackers.MatterControl.PartPreviewWindow buttonPanel, enforceGutter: false) { - Margin = new BorderDouble(bottom: 2) + Margin = new BorderDouble(bottom: 2), + Border = 0 }); foreach (var option in sceneContext.GetBaseViewOptions()) From 2340ae872ecac63a71948de9637b98e4c01af0b1 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 14:50:53 -0700 Subject: [PATCH 11/13] Remove anonymous block --- SlicerConfiguration/SliceSettingsWidget.cs | 204 ++++++++++----------- 1 file changed, 101 insertions(+), 103 deletions(-) diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index 2a285dc1d..966098642 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -630,133 +630,131 @@ namespace MatterHackers.MatterControl.SlicerConfiguration bool fullRowSelect = settingData.DataEditType == SliceSettingData.DataEditTypes.CHECK_BOX; var settingsRow = new SliceSettingsRow(printer, settingsContext, settingData, textColor, theme, fullRowSelect: fullRowSelect); + switch (settingData.DataEditType) { - switch (settingData.DataEditType) - { - case SliceSettingData.DataEditTypes.INT: + case SliceSettingData.DataEditTypes.INT: - var intField = new IntField(); - uiField = intField; + var intField = new IntField(); + uiField = intField; - if (settingData.SlicerConfigName == "extruder_count") + if (settingData.SlicerConfigName == "extruder_count") + { + intField.MaxValue = 4; + intField.MinValue = 0; + } + + break; + + case SliceSettingData.DataEditTypes.DOUBLE: + case SliceSettingData.DataEditTypes.OFFSET: + uiField = new DoubleField(); + break; + + case SliceSettingData.DataEditTypes.POSITIVE_DOUBLE: + if (settingData.SetSettingsOnChange.Count > 0) + { + uiField = new BoundDoubleField(settingsContext, settingData); + } + else + { + uiField = new PositiveDoubleField(); + }; + break; + + case SliceSettingData.DataEditTypes.DOUBLE_OR_PERCENT: + uiField = new DoubleOrPercentField(); + break; + + case SliceSettingData.DataEditTypes.INT_OR_MM: + uiField = new IntOrMmField(); + break; + + case SliceSettingData.DataEditTypes.CHECK_BOX: + uiField = new ToggleboxField(textColor); + useDefaultSavePattern = false; + uiField.ValueChanged += (s, e) => + { + if (e.UserInitiated) { - intField.MaxValue = 4; - intField.MinValue = 0; - } - - break; - - case SliceSettingData.DataEditTypes.DOUBLE: - case SliceSettingData.DataEditTypes.OFFSET: - uiField = new DoubleField(); - break; - - case SliceSettingData.DataEditTypes.POSITIVE_DOUBLE: - if (settingData.SetSettingsOnChange.Count > 0) - { - uiField = new BoundDoubleField(settingsContext, settingData); - } - else - { - uiField = new PositiveDoubleField(); - }; - break; - - case SliceSettingData.DataEditTypes.DOUBLE_OR_PERCENT: - uiField = new DoubleOrPercentField(); - break; - - case SliceSettingData.DataEditTypes.INT_OR_MM: - uiField = new IntOrMmField(); - break; - - case SliceSettingData.DataEditTypes.CHECK_BOX: - uiField = new ToggleboxField(textColor); - useDefaultSavePattern = false; - uiField.ValueChanged += (s, e) => - { - if (e.UserInitiated) + // Linked settings should be updated in all cases (user clicked checkbox, user clicked clear) + foreach (var setSettingsData in settingData.SetSettingsOnChange) { - // Linked settings should be updated in all cases (user clicked checkbox, user clicked clear) - foreach (var setSettingsData in settingData.SetSettingsOnChange) - { - string targetValue; + string targetValue; - if (uiField.Content is CheckBox checkbox) + if (uiField.Content is CheckBox checkbox) + { + if (setSettingsData.TryGetValue(checkbox.Checked ? "OnValue" : "OffValue", out targetValue)) { - if (setSettingsData.TryGetValue(checkbox.Checked ? "OnValue" : "OffValue", out targetValue)) - { - settingsContext.SetValue(setSettingsData["TargetSetting"], targetValue); - } + settingsContext.SetValue(setSettingsData["TargetSetting"], targetValue); } } - - // Store actual field value - settingsContext.SetValue(settingData.SlicerConfigName, uiField.Value); } - }; - break; - case SliceSettingData.DataEditTypes.STRING: - case SliceSettingData.DataEditTypes.WIDE_STRING: - uiField = new TextField(); - break; + // Store actual field value + settingsContext.SetValue(settingData.SlicerConfigName, uiField.Value); + } + }; + break; - case SliceSettingData.DataEditTypes.MULTI_LINE_TEXT: - uiField = new MultilineStringField(); - placeFieldInDedicatedRow = true; - break; + case SliceSettingData.DataEditTypes.STRING: + case SliceSettingData.DataEditTypes.WIDE_STRING: + uiField = new TextField(); + break; - case SliceSettingData.DataEditTypes.COM_PORT: - useDefaultSavePattern = false; + case SliceSettingData.DataEditTypes.MULTI_LINE_TEXT: + uiField = new MultilineStringField(); + placeFieldInDedicatedRow = true; + break; - sliceSettingValue = printer.Settings.Helpers.ComPort(); + case SliceSettingData.DataEditTypes.COM_PORT: + useDefaultSavePattern = false; - uiField = new ComPortField(printer, theme); - uiField.ValueChanged += (s, e) => + sliceSettingValue = printer.Settings.Helpers.ComPort(); + + uiField = new ComPortField(printer, theme); + uiField.ValueChanged += (s, e) => + { + if (e.UserInitiated) { - if (e.UserInitiated) - { - printer.Settings.Helpers.SetComPort(uiField.Value); - } - }; + printer.Settings.Helpers.SetComPort(uiField.Value); + } + }; - break; + break; - case SliceSettingData.DataEditTypes.LIST: - uiField = new ListField() - { - ListItems = settingData.ListValues.Split(',').ToList() - }; - break; + case SliceSettingData.DataEditTypes.LIST: + uiField = new ListField() + { + ListItems = settingData.ListValues.Split(',').ToList() + }; + break; - case SliceSettingData.DataEditTypes.HARDWARE_PRESENT: - uiField = new ToggleboxField(textColor); - break; + case SliceSettingData.DataEditTypes.HARDWARE_PRESENT: + uiField = new ToggleboxField(textColor); + break; - case SliceSettingData.DataEditTypes.VECTOR2: - uiField = new Vector2Field(); - break; + case SliceSettingData.DataEditTypes.VECTOR2: + uiField = new Vector2Field(); + break; - case SliceSettingData.DataEditTypes.OFFSET2: - placeFieldInDedicatedRow = true; - uiField = new ExtruderOffsetField(settingsContext, settingData.SlicerConfigName, textColor); - break; + case SliceSettingData.DataEditTypes.OFFSET2: + placeFieldInDedicatedRow = true; + uiField = new ExtruderOffsetField(settingsContext, settingData.SlicerConfigName, textColor); + break; #if !__ANDROID__ - case SliceSettingData.DataEditTypes.IP_LIST: - uiField = new IpAddessField(printer); - break; + case SliceSettingData.DataEditTypes.IP_LIST: + uiField = new IpAddessField(printer); + break; #endif - default: - // Missing Setting - settingsRow.AddContent(new TextWidget($"Missing the setting for '{settingData.DataEditType}'.") - { - TextColor = textColor, - BackgroundColor = Color.Red - }); - break; - } + default: + // Missing Setting + settingsRow.AddContent(new TextWidget($"Missing the setting for '{settingData.DataEditType}'.") + { + TextColor = textColor, + BackgroundColor = Color.Red + }); + break; } if (uiField != null) From f754ffb8ccb39a8c1f8d6c19ee188f499449d4ab Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 15:01:07 -0700 Subject: [PATCH 12/13] Remove separator border from last row in group --- SlicerConfiguration/SliceSettingsWidget.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index 966098642..0bb43249b 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -512,6 +512,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration HorizontalLine lastLine = null; + GuiWidget settingsRow = null; + foreach (SliceSettingData settingData in subGroup.Settings) { // Note: tab sections may disappear if / when they are empty, as controlled by: @@ -521,7 +523,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration if (EngineMappingsMatterSlice.Instance.MapContains(settingData.SlicerConfigName) && settingShouldBeShown) { - var settingsRow = CreateItemRow(settingData); + settingsRow = CreateItemRow(settingData); this.settingsRows.Add((settingsRow, settingData)); @@ -529,6 +531,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } } + // Hide border on last item in group + if (settingsRow != null) + { + settingsRow.BorderColor = Color.Transparent; + } + lastLine?.Close(); return (topToBottomSettings.Children.Count == 1) ? null : topToBottomSettings; From af00c7bd1aad7e5963ed4be1832977b7d26738a1 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 6 Apr 2018 15:01:29 -0700 Subject: [PATCH 13/13] Revise padding and borders in brand menu --- .../ApplicationSettings/ApplicationSettingsView.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/ConfigurationPage/ApplicationSettings/ApplicationSettingsView.cs b/ConfigurationPage/ApplicationSettings/ApplicationSettingsView.cs index 378c47260..82adfd44a 100644 --- a/ConfigurationPage/ApplicationSettings/ApplicationSettingsView.cs +++ b/ConfigurationPage/ApplicationSettings/ApplicationSettingsView.cs @@ -59,7 +59,6 @@ namespace MatterHackers.MatterControl.ConfigurationPage this.buttonFactory = buttonFactory; this.HAnchor = HAnchor.Stretch; this.VAnchor = VAnchor.Fit; - this.Padding = new BorderDouble(right: 4); // Camera Monitoring bool hasCamera = true || ApplicationSettings.Instance.get(ApplicationSettingsKey.HardwareHasCamera) == "true"; @@ -358,10 +357,9 @@ namespace MatterHackers.MatterControl.ConfigurationPage private void AddSettingsRow(GuiWidget widget) { this.AddChild(widget); - this.AddChild(new HorizontalLine(70) - { - Margin = new BorderDouble(left: 30), - }); + + widget.BorderColor = ApplicationController.Instance.Theme.GetBorderColor(25); + widget.Padding = widget.Padding.Clone(right: 10); } private FlowLayoutWidget GetThemeControl(ThemeConfig theme)