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
This commit is contained in:
Lars Brubaker 2017-11-16 09:56:16 -08:00
parent c27707b9a2
commit 0f8f4881e9
4 changed files with 26 additions and 15 deletions

View file

@ -121,12 +121,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
bool shareTemp = printer.Settings.GetValue<bool>(SettingsKey.extruders_share_temperature);
int extruderCount = shareTemp ? 1 : printer.Settings.GetValue<int>(SettingsKey.extruder_count);
for (int extruderIndex = 0; extruderIndex < extruderCount; extruderIndex++)
if (!printer.Settings.GetValue<bool>(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<bool>(SettingsKey.has_heated_bed))

View file

@ -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)
{

@ -1 +1 @@
Subproject commit ee965db6f5e838a9b96236e7b3341c6c3535fc21
Subproject commit f4ce4f329fe06624b0cd31c4ebe98cadf657443b

@ -1 +1 @@
Subproject commit 75ab706c70be2b16e5751bcf95a04071cb8e7d1f
Subproject commit 7bf60182fd60260a9087e593f84ad38ad350d343