diff --git a/ActionBar/PrinterSelector.cs b/ActionBar/PrinterSelector.cs index 235b93b68..955cda65f 100644 --- a/ActionBar/PrinterSelector.cs +++ b/ActionBar/PrinterSelector.cs @@ -51,11 +51,6 @@ namespace MatterHackers.MatterControl { Rebuild(); - this.AddItem( - StaticData.Instance.LoadIcon("icon_plus.png", 32, 32), - "Add New Printer...", - "new"); - this.SelectionChanged += (s, e) => { string printerID = this.SelectedValue; @@ -73,6 +68,7 @@ namespace MatterHackers.MatterControl }; SliceSettingsWidget.SettingChanged.RegisterEvent(SettingChanged, ref unregisterEvents); + ProfileManager.ProfilesListChanged.RegisterEvent(SettingChanged, ref unregisterEvents); } public void Rebuild() @@ -90,6 +86,11 @@ namespace MatterHackers.MatterControl this.SelectedValue = ActiveSliceSettings.Instance.ID; this.mainControlText.Text = ActiveSliceSettings.Instance.GetValue("MatterControl.PrinterName"); } + + this.AddItem( + StaticData.Instance.LoadIcon("icon_plus.png", 32, 32), + "Add New Printer...", + "new"); } private void SettingChanged(object sender, EventArgs e) @@ -101,9 +102,9 @@ namespace MatterHackers.MatterControl { ProfileManager.Instance.ActiveProfile.Name = ActiveSliceSettings.Instance.GetValue("MatterControl.PrinterName"); } - - Rebuild(); } + + Rebuild(); } public override void OnClosed(EventArgs e) diff --git a/SlicerConfiguration/Settings/ProfileManager.cs b/SlicerConfiguration/Settings/ProfileManager.cs index 2ec1d5c62..20c2e55e8 100644 --- a/SlicerConfiguration/Settings/ProfileManager.cs +++ b/SlicerConfiguration/Settings/ProfileManager.cs @@ -36,6 +36,7 @@ using System.Linq; namespace MatterHackers.MatterControl.SlicerConfiguration { + using Agg; using Localizations; using System.Collections.ObjectModel; using System.Net; @@ -50,6 +51,8 @@ namespace MatterHackers.MatterControl.SlicerConfiguration private static EventHandler unregisterEvents; + public static RootedObjectEventHandler ProfilesListChanged = new RootedObjectEventHandler(); + static ProfileManager() { SliceSettingsWidget.SettingChanged.RegisterEvent(SettingsChanged, ref unregisterEvents); @@ -199,8 +202,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration break; } - - ActiveSliceSettings.SwitchToProfile(printerInfo.ID); + ProfileManager.Instance.Save(); } internal static void AcquireNewProfile(string make, string model, string printerName) @@ -289,9 +291,11 @@ namespace MatterHackers.MatterControl.SlicerConfiguration File.Delete(profilePath); } - // Refresh after remove + // Refresh after change UiThread.RunOnIdle(() => ActiveSliceSettings.Instance = LoadEmptyProfile()); } + + ProfilesListChanged.CallEvents(null, null); } /* diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index 0efc4e2fb..adedbf358 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit 0efc4e2fbcbda33885e31cff2cbc3d9a3803e83b +Subproject commit adedbf358a0d98e3af97e2243ee491e9ad4b8c21