From 1b3bf975cf7bd21b754406b3ac325012d20be356 Mon Sep 17 00:00:00 2001 From: LarsBrubaker Date: Sun, 27 Mar 2022 08:32:07 -0700 Subject: [PATCH] Show bed_temperature for materials that are not setup for bed types --- .../Settings/PrinterSettings.cs | 4 +++- .../Settings/SettingsHelpers.cs | 19 +++---------------- .../ActionBar/TemperatureWidgetBed.cs | 3 ++- .../PresetSelectorWidget.cs | 5 ++++- 4 files changed, 12 insertions(+), 19 deletions(-) diff --git a/MatterControl.Printing/Settings/PrinterSettings.cs b/MatterControl.Printing/Settings/PrinterSettings.cs index afb2bed09..fab0c1de6 100644 --- a/MatterControl.Printing/Settings/PrinterSettings.cs +++ b/MatterControl.Printing/Settings/PrinterSettings.cs @@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project. */ using MatterHackers.Agg; +using MatterHackers.Agg.UI; using MatterHackers.VectorMath; using Newtonsoft.Json; using Newtonsoft.Json.Converters; @@ -1089,7 +1090,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration // Otherwise, set and save persistenceLayer[settingsKey] = settingsValue; - this.OnSettingChanged(settingsKey); + // delay to make sure all settings changes have completed + UiThread.RunOnIdle(() => this.OnSettingChanged(settingsKey)); } public string ToJson() diff --git a/MatterControl.Printing/Settings/SettingsHelpers.cs b/MatterControl.Printing/Settings/SettingsHelpers.cs index 481f93bea..7353621eb 100644 --- a/MatterControl.Printing/Settings/SettingsHelpers.cs +++ b/MatterControl.Printing/Settings/SettingsHelpers.cs @@ -234,21 +234,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { get { - var activeKey = ActiveBedTemperatureSetting; - - var bedTemperature = printerSettings.GetValue(activeKey); - // Check if the Active Material has settings for bed surfaces - - // If the setting for this bed is 0 - // and there are not settings (actual temperatures) for differnt beds, return the normal bed_temperature - if (!ActiveMaterialHasAnyBedTemperatures - && bedTemperature == 0) - { - return printerSettings.GetValue(SettingsKey.bed_temperature); - } - - // looks like this is a legitimate setting, send it back - return bedTemperature; + return printerSettings.GetValue(ActiveBedTemperatureSetting); } } @@ -256,7 +242,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { get { - if (!printerSettings.GetValue(SettingsKey.has_swappable_bed)) + if (!printerSettings.GetValue(SettingsKey.has_swappable_bed) + || !ActiveMaterialHasAnyBedTemperatures) { return SettingsKey.bed_temperature; } diff --git a/MatterControlLib/ActionBar/TemperatureWidgetBed.cs b/MatterControlLib/ActionBar/TemperatureWidgetBed.cs index c4fe50a0e..8d96e8d26 100644 --- a/MatterControlLib/ActionBar/TemperatureWidgetBed.cs +++ b/MatterControlLib/ActionBar/TemperatureWidgetBed.cs @@ -131,7 +131,8 @@ namespace MatterHackers.MatterControl.ActionBar { graph.GoalValue = printer.Settings.Helpers.ActiveBedTemperature; } - else if (stringEvent.Data == SettingsKey.bed_surface) + else if (stringEvent.Data == SettingsKey.bed_surface + || stringEvent.Data == SettingsKey.active_material_key) { AddTemperatureControlForBedSurface(); graph.GoalValue = printer.Settings.Helpers.ActiveBedTemperature; diff --git a/MatterControlLib/SlicerConfiguration/PresetSelectorWidget.cs b/MatterControlLib/SlicerConfiguration/PresetSelectorWidget.cs index eb6fa7516..9b6d7f5ec 100644 --- a/MatterControlLib/SlicerConfiguration/PresetSelectorWidget.cs +++ b/MatterControlLib/SlicerConfiguration/PresetSelectorWidget.cs @@ -489,7 +489,10 @@ namespace MatterHackers.MatterControl.SlicerConfiguration printer.Settings.OnSettingChanged(updateList[i]); } ProfileManager.SaveOnSingleSettingChange = true; - printer.Settings.OnSettingChanged(updateList[updateList.Count-1]); + if (updateList.Count > 0) + { + printer.Settings.OnSettingChanged(updateList[updateList.Count - 1]); + } // update the style of every setting var sliceSettingsWidget = this.Parents().FirstOrDefault();