From 0f9042f28ddf47c19be9675e084dd0fb4b7263c3 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 5 Oct 2018 09:55:46 -0700 Subject: [PATCH] Migrate SettingChanged event to PrinterSettings - Issue MatterHackers/MCCentral#4245 Remove ActiveSliceSettings type --- MatterControlLib/ActionBar/PrinterSelector.cs | 2 +- MatterControlLib/ActionBar/TemperatureWidgetBed.cs | 2 +- .../ActionBar/TemperatureWidgetExtruder.cs | 2 +- .../ApplicationView/ApplicationController.cs | 4 ++-- MatterControlLib/ApplicationView/PrinterModels.cs | 6 +++--- MatterControlLib/PartPreviewWindow/GCode2DWidget.cs | 2 +- MatterControlLib/PartPreviewWindow/GCode3DWidget.cs | 2 +- .../GCodeDetails/GCodeDetailsView.cs | 2 +- .../PartPreviewWindow/PartPreviewContent.cs | 4 ++-- .../View3D/PrinterBar/PauseResumeButton.cs | 2 +- .../View3D/PrinterBar/PrintPopupMenu.cs | 2 +- .../PrinterCommunication/Io/BabyStepsStream.cs | 2 +- .../ControlWidgets/AdjustmentControls.cs | 2 +- .../ControlWidgets/MovementControls.cs | 2 +- MatterControlLib/PrinterControls/JogControls.cs | 2 +- .../SlicerConfiguration/PresetSelectorWidget.cs | 4 ++-- .../Settings/ActiveSliceSettings.cs | 7 ------- .../SlicerConfiguration/Settings/PrinterSettings.cs | 12 ++++++++++-- .../SlicerConfiguration/Settings/ProfileManager.cs | 2 +- .../SlicerConfiguration/SliceSettingsWidget.cs | 2 +- .../UIFields/DropMenuWrappedField.cs | 2 +- .../SliceSettingsTests.cs | 2 +- 22 files changed, 35 insertions(+), 34 deletions(-) diff --git a/MatterControlLib/ActionBar/PrinterSelector.cs b/MatterControlLib/ActionBar/PrinterSelector.cs index eeef14935..4170fe9ed 100644 --- a/MatterControlLib/ActionBar/PrinterSelector.cs +++ b/MatterControlLib/ActionBar/PrinterSelector.cs @@ -89,7 +89,7 @@ namespace MatterHackers.MatterControl } }; - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { var activePrinter = ApplicationController.Instance.ActivePrinter; diff --git a/MatterControlLib/ActionBar/TemperatureWidgetBed.cs b/MatterControlLib/ActionBar/TemperatureWidgetBed.cs index cb0e99725..f32c5c13f 100644 --- a/MatterControlLib/ActionBar/TemperatureWidgetBed.cs +++ b/MatterControlLib/ActionBar/TemperatureWidgetBed.cs @@ -143,7 +143,7 @@ namespace MatterHackers.MatterControl.ActionBar var valueField = temperatureRow.Descendants().FirstOrDefault(); var settingsRow = temperatureRow.DescendantsAndSelf().FirstOrDefault(); - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if (e is StringEventArgs stringEvent) { diff --git a/MatterControlLib/ActionBar/TemperatureWidgetExtruder.cs b/MatterControlLib/ActionBar/TemperatureWidgetExtruder.cs index 7d0a1edb9..32dc13a22 100644 --- a/MatterControlLib/ActionBar/TemperatureWidgetExtruder.cs +++ b/MatterControlLib/ActionBar/TemperatureWidgetExtruder.cs @@ -300,7 +300,7 @@ namespace MatterHackers.MatterControl.ActionBar var valueField = temperatureRow.Descendants().FirstOrDefault(); valueField.Name = "Temperature Input"; var settingsRow = temperatureRow.DescendantsAndSelf().FirstOrDefault(); - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if (e is StringEventArgs stringEvent) { diff --git a/MatterControlLib/ApplicationView/ApplicationController.cs b/MatterControlLib/ApplicationView/ApplicationController.cs index 6b7c54333..815c8f4e2 100644 --- a/MatterControlLib/ApplicationView/ApplicationController.cs +++ b/MatterControlLib/ApplicationView/ApplicationController.cs @@ -349,7 +349,7 @@ namespace MatterHackers.MatterControl /* // TODO: Should we rebroadcast settings changed events for each settings? bool themeChanged = ActivePrinter.Settings.GetValue(SettingsKey.active_theme_name) != updatedProfile.GetValue(SettingsKey.active_theme_name); - ActiveSliceSettings.SettingChanged.CallEvents(null, new StringEventArgs(SettingsKey.printer_name)); + PrinterSettings.SettingChanged.CallEvents(null, new StringEventArgs(SettingsKey.printer_name)); // TODO: Decide if non-printer contexts should prompt for a printer, if we should have a default printer, or get "ActiveTab printer" working // HACK: short term solution to resolve printer reference for non-printer related contexts @@ -1120,7 +1120,7 @@ namespace MatterHackers.MatterControl iconCollector: (theme) => AggContext.StaticData.LoadIcon("noun_55060.png", theme.InvertIcons)); - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if (e is StringEventArgs stringArg && SettingsOrganizer.SettingsData.TryGetValue(stringArg.Data, out SliceSettingData settingsData) diff --git a/MatterControlLib/ApplicationView/PrinterModels.cs b/MatterControlLib/ApplicationView/PrinterModels.cs index ddc98e216..c9e60ec9c 100644 --- a/MatterControlLib/ApplicationView/PrinterModels.cs +++ b/MatterControlLib/ApplicationView/PrinterModels.cs @@ -88,7 +88,7 @@ namespace MatterHackers.MatterControl { // Make sure we don't have a selection this.Scene.SelectedItem = null; - + this.EditContext = editContext; this.ContentType = "mcx"; @@ -174,7 +174,7 @@ namespace MatterHackers.MatterControl Content = new Object3D(), ContentStore = historyContainer, SourceItem = historyContainer.NewPlatingItem() - }, + }, new Object3D()); } @@ -888,7 +888,7 @@ namespace MatterHackers.MatterControl this.Settings.printer = this; // TODO: ActiveSliceSettings is not our Settings! Move SettingsChanged to instance rather than static - ActiveSliceSettings.SettingChanged.RegisterEvent(Printer_SettingChanged, ref unregisterEvents); + PrinterSettings.SettingChanged.RegisterEvent(Printer_SettingChanged, ref unregisterEvents); this.Connection.PrintFinished.RegisterEvent((s, e) => { diff --git a/MatterControlLib/PartPreviewWindow/GCode2DWidget.cs b/MatterControlLib/PartPreviewWindow/GCode2DWidget.cs index d4ea12b29..22dfd0c41 100644 --- a/MatterControlLib/PartPreviewWindow/GCode2DWidget.cs +++ b/MatterControlLib/PartPreviewWindow/GCode2DWidget.cs @@ -79,7 +79,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow // make sure we have good settings - ActiveSliceSettings.SettingChanged.RegisterEvent(Printer_SettingChanged, ref unregisterEvents); + PrinterSettings.SettingChanged.RegisterEvent(Printer_SettingChanged, ref unregisterEvents); Printer_SettingChanged(this, null); this.gridSizeMm = printer.Settings.GetValue(SettingsKey.bed_size); diff --git a/MatterControlLib/PartPreviewWindow/GCode3DWidget.cs b/MatterControlLib/PartPreviewWindow/GCode3DWidget.cs index 68f078036..89abbf841 100644 --- a/MatterControlLib/PartPreviewWindow/GCode3DWidget.cs +++ b/MatterControlLib/PartPreviewWindow/GCode3DWidget.cs @@ -96,7 +96,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow var firstSection = this.Children().First(); firstSection.BorderColor = Color.Transparent; // Disable top border on first item to produce a more flat, dark top edge - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if (e is StringEventArgs stringEvent) { diff --git a/MatterControlLib/PartPreviewWindow/GCodeDetails/GCodeDetailsView.cs b/MatterControlLib/PartPreviewWindow/GCodeDetails/GCodeDetailsView.cs index 7657a8139..477e1dfbf 100644 --- a/MatterControlLib/PartPreviewWindow/GCodeDetails/GCodeDetailsView.cs +++ b/MatterControlLib/PartPreviewWindow/GCodeDetails/GCodeDetailsView.cs @@ -65,7 +65,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow var conditionalCostContainer = costTextWidget.Parent; conditionalCostContainer.Visible = gcodeDetails.TotalCost > 0; - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if (e is StringEventArgs stringEvent) { diff --git a/MatterControlLib/PartPreviewWindow/PartPreviewContent.cs b/MatterControlLib/PartPreviewWindow/PartPreviewContent.cs index fb5c627b6..55b1d617a 100644 --- a/MatterControlLib/PartPreviewWindow/PartPreviewContent.cs +++ b/MatterControlLib/PartPreviewWindow/PartPreviewContent.cs @@ -212,7 +212,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow this.AddChild(tabControl); - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { var activePrinter = ApplicationController.Instance.ActivePrinter; @@ -298,7 +298,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow MinimumSize = new Vector2(120, theme.TabButtonHeight) }; - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { string settingsName = (e as StringEventArgs)?.Data; if (settingsName != null && settingsName == SettingsKey.printer_name) diff --git a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PauseResumeButton.cs b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PauseResumeButton.cs index 3a327c0a0..49240706b 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PauseResumeButton.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PauseResumeButton.cs @@ -84,7 +84,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow UiThread.RunOnIdle(SetButtonStates); }, ref unregisterEvents); - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if (e is StringEventArgs stringEvent && (stringEvent.Data == SettingsKey.z_probe_z_offset diff --git a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrintPopupMenu.cs b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrintPopupMenu.cs index e8e153506..f3ca3a387 100644 --- a/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrintPopupMenu.cs +++ b/MatterControlLib/PartPreviewWindow/View3D/PrinterBar/PrintPopupMenu.cs @@ -179,7 +179,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow Padding = theme.TextButtonPadding.Clone(right: 5) }); - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if (e is StringEventArgs stringEvent) { diff --git a/MatterControlLib/PrinterCommunication/Io/BabyStepsStream.cs b/MatterControlLib/PrinterCommunication/Io/BabyStepsStream.cs index d51dbe772..eae79c0a5 100644 --- a/MatterControlLib/PrinterCommunication/Io/BabyStepsStream.cs +++ b/MatterControlLib/PrinterCommunication/Io/BabyStepsStream.cs @@ -47,7 +47,7 @@ namespace MatterHackers.MatterControl.PrinterCommunication.Io : base(null) { this.printerSettings = printerSettings; - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if ((e as StringEventArgs)?.Data == SettingsKey.baby_step_z_offset) { diff --git a/MatterControlLib/PrinterControls/ControlWidgets/AdjustmentControls.cs b/MatterControlLib/PrinterControls/ControlWidgets/AdjustmentControls.cs index fc59dc1b7..4663ab5d3 100644 --- a/MatterControlLib/PrinterControls/ControlWidgets/AdjustmentControls.cs +++ b/MatterControlLib/PrinterControls/ControlWidgets/AdjustmentControls.cs @@ -182,7 +182,7 @@ namespace MatterHackers.MatterControl.PrinterControls settingsRow.AddChild(extrusionValue); } - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { var eventArgs = e as StringEventArgs; if (eventArgs?.Data == SettingsKey.extrusion_ratio) diff --git a/MatterControlLib/PrinterControls/ControlWidgets/MovementControls.cs b/MatterControlLib/PrinterControls/ControlWidgets/MovementControls.cs index c360188a5..64fca395d 100644 --- a/MatterControlLib/PrinterControls/ControlWidgets/MovementControls.cs +++ b/MatterControlLib/PrinterControls/ControlWidgets/MovementControls.cs @@ -261,7 +261,7 @@ namespace MatterHackers.MatterControl.PrinterControls this.HAnchor = HAnchor.Fit; this.VAnchor = VAnchor.Fit | VAnchor.Center; - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if ((e as StringEventArgs)?.Data == SettingsKey.baby_step_z_offset) { diff --git a/MatterControlLib/PrinterControls/JogControls.cs b/MatterControlLib/PrinterControls/JogControls.cs index 6e5d790c6..b0b6ed5c1 100644 --- a/MatterControlLib/PrinterControls/JogControls.cs +++ b/MatterControlLib/PrinterControls/JogControls.cs @@ -208,7 +208,7 @@ namespace MatterHackers.MatterControl this.PerformLayout(); - ActiveSliceSettings.SettingChanged.RegisterEvent(Printer_SettingChanged, ref unregisterEvents); + PrinterSettings.SettingChanged.RegisterEvent(Printer_SettingChanged, ref unregisterEvents); } internal void SetEnabledLevels(bool enableBabysteppingMode, bool enableEControls) diff --git a/MatterControlLib/SlicerConfiguration/PresetSelectorWidget.cs b/MatterControlLib/SlicerConfiguration/PresetSelectorWidget.cs index 23e3c8336..1dd3fb309 100644 --- a/MatterControlLib/SlicerConfiguration/PresetSelectorWidget.cs +++ b/MatterControlLib/SlicerConfiguration/PresetSelectorWidget.cs @@ -84,7 +84,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration this.AddChild(pullDownContainer); ActiveSliceSettings.MaterialPresetChanged += ActiveSliceSettings_MaterialPresetChanged; - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { if (e is StringEventArgs stringEvent && (stringEvent.Data == SettingsKey.default_material_presets @@ -366,7 +366,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration { if (settingBeforeChange[keyName] != printer.Settings.GetValue(keyName)) { - ActiveSliceSettings.OnSettingChanged(keyName); + PrinterSettings.OnSettingChanged(keyName); } } }); diff --git a/MatterControlLib/SlicerConfiguration/Settings/ActiveSliceSettings.cs b/MatterControlLib/SlicerConfiguration/Settings/ActiveSliceSettings.cs index 149121d91..d6cf83690 100644 --- a/MatterControlLib/SlicerConfiguration/Settings/ActiveSliceSettings.cs +++ b/MatterControlLib/SlicerConfiguration/Settings/ActiveSliceSettings.cs @@ -37,15 +37,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration public static class ActiveSliceSettings { - public static RootedObjectEventHandler SettingChanged = new RootedObjectEventHandler(); - public static event EventHandler MaterialPresetChanged; - public static void OnSettingChanged(string slicerConfigName) - { - SettingChanged.CallEvents(null, new StringEventArgs(slicerConfigName)); - } - internal static void OnMaterialPresetChanged() { MaterialPresetChanged?.Invoke(null, null); diff --git a/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs b/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs index fcc84b8d0..d6ae1fb92 100644 --- a/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs +++ b/MatterControlLib/SlicerConfiguration/Settings/PrinterSettings.cs @@ -57,6 +57,14 @@ namespace MatterHackers.MatterControl.SlicerConfiguration // Year|month|day|versionForDay (to support multiple revisions on a given day) public static int LatestVersion { get; } = 201606271; + // TODO: Change to instance based, revise listeners and register to expect specific printer settings + public static RootedObjectEventHandler SettingChanged = new RootedObjectEventHandler(); + + public static void OnSettingChanged(string slicerConfigName) + { + SettingChanged.CallEvents(null, new StringEventArgs(slicerConfigName)); + } + [JsonIgnore] public RootedObjectEventHandler PrintLevelingEnabledChanged = new RootedObjectEventHandler(); @@ -1299,7 +1307,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration persistenceLayer[settingsKey] = settingsValue; Save(); - ActiveSliceSettings.OnSettingChanged(settingsKey); + PrinterSettings.OnSettingChanged(settingsKey); } public string ToJson() @@ -1342,7 +1350,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration Save(); - ActiveSliceSettings.OnSettingChanged(settingsKey); + PrinterSettings.OnSettingChanged(settingsKey); } } } diff --git a/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs b/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs index 86296f95d..b1ab7c967 100644 --- a/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs +++ b/MatterControlLib/SlicerConfiguration/Settings/ProfileManager.cs @@ -58,7 +58,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration static ProfileManager() { - ActiveSliceSettings.SettingChanged.RegisterEvent(SettingsChanged, ref unregisterEvents); + PrinterSettings.SettingChanged.RegisterEvent(SettingsChanged, ref unregisterEvents); ReloadActiveUser(); } diff --git a/MatterControlLib/SlicerConfiguration/SliceSettingsWidget.cs b/MatterControlLib/SlicerConfiguration/SliceSettingsWidget.cs index d243de2cf..bfe52b3ca 100644 --- a/MatterControlLib/SlicerConfiguration/SliceSettingsWidget.cs +++ b/MatterControlLib/SlicerConfiguration/SliceSettingsWidget.cs @@ -321,7 +321,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration } }; - ActiveSliceSettings.SettingChanged.RegisterEvent( + PrinterSettings.SettingChanged.RegisterEvent( (s, e) => { if (e is StringEventArgs stringEvent) diff --git a/MatterControlLib/SlicerConfiguration/UIFields/DropMenuWrappedField.cs b/MatterControlLib/SlicerConfiguration/UIFields/DropMenuWrappedField.cs index e35be6029..87fa43f9f 100644 --- a/MatterControlLib/SlicerConfiguration/UIFields/DropMenuWrappedField.cs +++ b/MatterControlLib/SlicerConfiguration/UIFields/DropMenuWrappedField.cs @@ -94,7 +94,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration EventHandler localUnregisterEvents = null; - ActiveSliceSettings.SettingChanged.RegisterEvent((sender, e) => + PrinterSettings.SettingChanged.RegisterEvent((sender, e) => { if (e is StringEventArgs stringArgs && stringArgs.Data == settingData.SlicerConfigName) diff --git a/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs b/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs index b913fb87e..b874f280e 100644 --- a/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs +++ b/Tests/MatterControl.AutomationTests/SliceSettingsTests.cs @@ -329,7 +329,7 @@ namespace MatterHackers.MatterControl.Tests.Automation EventHandler unregisterEvents = null; int layerHeightChangedCount = 0; - ActiveSliceSettings.SettingChanged.RegisterEvent((s, e) => + PrinterSettings.SettingChanged.RegisterEvent((s, e) => { var stringEvent = e as StringEventArgs; if (stringEvent != null)