From 0f8f4881e98ce01550cc7989ba208e44480e51d0 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Thu, 16 Nov 2017 09:56:16 -0800 Subject: [PATCH] Cleaned up presets editor to better handle overrides and visible settings Always show enabled settings in presets Don't how FDM settings (disabled printer) in SLA presets Don't show printer tab in presets Don't show temp on SLA printer --- PartPreviewWindow/View3D/PrinterActionsBar.cs | 11 +++++--- SlicerConfiguration/SliceSettingsWidget.cs | 26 ++++++++++++------- Submodules/MatterSlice | 2 +- Submodules/agg-sharp | 2 +- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/PartPreviewWindow/View3D/PrinterActionsBar.cs b/PartPreviewWindow/View3D/PrinterActionsBar.cs index 12f3b2afd..30a44e748 100644 --- a/PartPreviewWindow/View3D/PrinterActionsBar.cs +++ b/PartPreviewWindow/View3D/PrinterActionsBar.cs @@ -121,12 +121,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow bool shareTemp = printer.Settings.GetValue(SettingsKey.extruders_share_temperature); int extruderCount = shareTemp ? 1 : printer.Settings.GetValue(SettingsKey.extruder_count); - for (int extruderIndex = 0; extruderIndex < extruderCount; extruderIndex++) + if (!printer.Settings.GetValue(SettingsKey.sla_printer)) { - this.AddChild(new TemperatureWidgetHotend(printer, extruderIndex, theme.MenuButtonFactory) + for (int extruderIndex = 0; extruderIndex < extruderCount; extruderIndex++) { - Margin = new BorderDouble(right: 10) - }); + this.AddChild(new TemperatureWidgetHotend(printer, extruderIndex, theme.MenuButtonFactory) + { + Margin = new BorderDouble(right: 10) + }); + } } if (printer.Settings.GetValue(SettingsKey.has_heated_bed)) diff --git a/SlicerConfiguration/SliceSettingsWidget.cs b/SlicerConfiguration/SliceSettingsWidget.cs index c256f0a67..a6f653a09 100644 --- a/SlicerConfiguration/SliceSettingsWidget.cs +++ b/SlicerConfiguration/SliceSettingsWidget.cs @@ -111,6 +111,12 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { OrganizerCategory category = SliceSettingsOrganizer.Instance.UserLevels[UserLevel].CategoriesList[topCategoryIndex]; + if (category.Name == "Printer" + && (settingsContext.ViewFilter == NamedSettingsLayers.Material || settingsContext.ViewFilter == NamedSettingsLayers.Quality)) + { + continue; + } + var categoryPage = new TabPage(category.Name.Localize()); categoryPage.AnchorAll(); @@ -240,6 +246,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration private TabControl CreateSideTabsAndPages(OrganizerCategory category, bool showHelpControls) { + var oemAndUserContext = new SettingsContext( + printer, + null, + NamedSettingsLayers.MHBaseSettings | NamedSettingsLayers.OEMSettings | NamedSettingsLayers.User); + this.HAnchor = HAnchor.Stretch; var secondaryTabControl = new TabControl(Orientation.Vertical); @@ -299,7 +310,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { // Note: tab sections may disappear if / when they are empty, as controlled by: // settingShouldBeShown / addedSettingToSubGroup / needToAddSubGroup - bool settingShouldBeShown = CheckIfShouldBeShown(settingData); + bool settingShouldBeShown = CheckIfShouldBeShown(settingData, oemAndUserContext); if (EngineMappingsMatterSlice.Instance.MapContains(settingData.SlicerConfigName) && settingShouldBeShown) @@ -376,7 +387,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration return secondaryTabControl; } - private bool CheckIfShouldBeShown(SliceSettingData settingData) + private bool CheckIfShouldBeShown(SliceSettingData settingData, SettingsContext settingsContext) { bool settingShouldBeShown = settingsContext.ParseShowString(settingData.ShowIfSet); if (settingsContext.ViewFilter == NamedSettingsLayers.Material || settingsContext.ViewFilter == NamedSettingsLayers.Quality) @@ -390,11 +401,6 @@ namespace MatterHackers.MatterControl.SlicerConfiguration return settingShouldBeShown; } - private bool CheckIfEnabled(SliceSettingData settingData) - { - return settingsContext.ParseShowString(settingData.EnableIfSet); - } - private GuiWidget AddInHelpText(FlowLayoutWidget topToBottomSettings, SliceSettingData settingData) { FlowLayoutWidget allText = new FlowLayoutWidget(FlowDirection.TopToBottom); @@ -666,8 +672,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration // Invoke the UpdateStyle implementation settingsRow.UpdateStyle(); - bool settingShouldEnabled = settingsContext.ParseShowString(settingData.EnableIfSet); - if (settingShouldEnabled) + bool settingEnabled = settingsContext.ParseShowString(settingData.EnableIfSet); + if (settingEnabled + || settingsContext.ViewFilter == NamedSettingsLayers.Material + || settingsContext.ViewFilter == NamedSettingsLayers.Quality) { if (placeFieldInDedicatedRow) { diff --git a/Submodules/MatterSlice b/Submodules/MatterSlice index ee965db6f..f4ce4f329 160000 --- a/Submodules/MatterSlice +++ b/Submodules/MatterSlice @@ -1 +1 @@ -Subproject commit ee965db6f5e838a9b96236e7b3341c6c3535fc21 +Subproject commit f4ce4f329fe06624b0cd31c4ebe98cadf657443b diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 75ab706c7..7bf60182f 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 75ab706c70be2b16e5751bcf95a04071cb8e7d1f +Subproject commit 7bf60182fd60260a9087e593f84ad38ad350d343