From cd319c9040023515c067b94c72684cdc3069ff2a Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Wed, 20 Jul 2016 15:16:00 -0700 Subject: [PATCH] Made the override settings editors not change the data about the main settings editor --- .../SliceSettingsDetailControl.cs | 48 +++++++++++++++---- SlicerConfiguration/SliceSettingsWidget.cs | 12 +++-- 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/SlicerConfiguration/SliceSettingsDetailControl.cs b/SlicerConfiguration/SliceSettingsDetailControl.cs index bfc656dd0..a8cd9a934 100644 --- a/SlicerConfiguration/SliceSettingsDetailControl.cs +++ b/SlicerConfiguration/SliceSettingsDetailControl.cs @@ -22,10 +22,19 @@ namespace MatterHackers.MatterControl.SlicerConfiguration private static string resetToDefaultsMessage = "Resetting to default values will remove your current overrides and restore your original printer settings.\nAre you sure you want to continue?".Localize(); private static string resetToDefaultsWindowTitle = "Revert Settings".Localize(); - public SliceSettingsDetailControl() + public SliceSettingsDetailControl(List layerCascade) { - showHelpBox = new CheckBox(0, 0, "Show Help".Localize(), textSize: 10); - showHelpBox.Checked = UserSettings.Instance.get(SliceSettingsShowHelpEntry) == "true"; + showHelpBox = new CheckBox(0, 0, "Show Help".Localize(), textSize: 10) + { + VAnchor = VAnchor.ParentCenter, + }; + + if (layerCascade == null) + { + // only turn of the help if in the main view and it is set to on + showHelpBox.Checked = UserSettings.Instance.get(SliceSettingsShowHelpEntry) == "true"; + } + // add in the ability to turn on and off help text showHelpBox.TextColor = ActiveTheme.Instance.PrimaryTextColor; showHelpBox.Margin = new BorderDouble(right: 3); @@ -33,7 +42,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration showHelpBox.Cursor = Cursors.Hand; showHelpBox.CheckedStateChanged += (s, e) => { - UserSettings.Instance.set(SliceSettingsShowHelpEntry, showHelpBox.Checked.ToString().ToLower()); + if (layerCascade == null) + { + // only save the help settings if in the main view + UserSettings.Instance.set(SliceSettingsShowHelpEntry, showHelpBox.Checked.ToString().ToLower()); + } ShowHelpChanged?.Invoke(this, null); }; @@ -44,10 +57,20 @@ namespace MatterHackers.MatterControl.SlicerConfiguration settingsDetailSelector.AddItem("Basic".Localize(), "Simple"); settingsDetailSelector.AddItem("Standard".Localize(), "Intermediate"); settingsDetailSelector.AddItem("Advanced".Localize(), "Advanced"); - if (UserSettings.Instance.get(SliceSettingsLevelEntry) != null - && SliceSettingsOrganizer.Instance.UserLevels.ContainsKey(UserSettings.Instance.get(SliceSettingsLevelEntry))) + + if (layerCascade == null) { - settingsDetailSelector.SelectedValue = UserSettings.Instance.get(SliceSettingsLevelEntry); + // set to the user requested value when in default view + if (UserSettings.Instance.get(SliceSettingsLevelEntry) != null + && SliceSettingsOrganizer.Instance.UserLevels.ContainsKey(UserSettings.Instance.get(SliceSettingsLevelEntry))) + { + settingsDetailSelector.SelectedValue = UserSettings.Instance.get(SliceSettingsLevelEntry); + } + } + else // in settings editor view + { + // set to advanced + settingsDetailSelector.SelectedValue = "Advanced"; } settingsDetailSelector.SelectionChanged += (s, e) => RebuildSlicerSettings(null, null); ; @@ -55,8 +78,14 @@ namespace MatterHackers.MatterControl.SlicerConfiguration settingsDetailSelector.Margin = new BorderDouble(5, 3); settingsDetailSelector.BorderColor = new RGBA_Bytes(ActiveTheme.Instance.SecondaryTextColor, 100); - this.AddChild(settingsDetailSelector); - this.AddChild(GetSliceOptionsMenuDropList()); + if (layerCascade == null) + { + // only add these in the default view + this.AddChild(settingsDetailSelector); + this.AddChild(GetSliceOptionsMenuDropList()); + } + + VAnchor = VAnchor.ParentCenter; } public event EventHandler ShowHelpChanged; @@ -141,6 +170,5 @@ namespace MatterHackers.MatterControl.SlicerConfiguration resetToDefaultsWindowTitle, StyledMessageBox.MessageType.YES_NO); } - } } \ No newline at end of file diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index 8744ef7e0..b0d169cf4 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -143,7 +143,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration topCategoryTabs.Margin = new BorderDouble(top: 8); topCategoryTabs.AnchorAll(); - sliceSettingsDetailControl = new SliceSettingsDetailControl(); + sliceSettingsDetailControl = new SliceSettingsDetailControl(layerCascade); List sideTabBarsListForLayout = new List(); for (int topCategoryIndex = 0; topCategoryIndex < SliceSettingsOrganizer.Instance.UserLevels[UserLevel].CategoriesList.Count; topCategoryIndex++) @@ -216,7 +216,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration string selectedTabName = topCategoryTabs.TabBar.SelectedTabName; if (!string.IsNullOrEmpty(selectedTabName)) { - UserSettings.Instance.set(settingsName, selectedTabName); + if (layerCascade == null) + { + UserSettings.Instance.set(settingsName, selectedTabName); + } } }; } @@ -459,7 +462,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration string selectedTabName = leftSideGroupTabs.TabBar.SelectedTabName; if (!string.IsNullOrEmpty(selectedTabName)) { - UserSettings.Instance.set(settingsTypeName, selectedTabName); + if (layerCascade == null) + { + UserSettings.Instance.set(settingsTypeName, selectedTabName); + } } }; }