Release event listeners on close

- Issue MatterHackers/MCCentral#3016
Switching colors leaks GuiWidgets
This commit is contained in:
John Lewin 2018-04-02 12:59:18 -07:00
parent a66f318834
commit 7aba4267c0
3 changed files with 14 additions and 7 deletions

View file

@ -764,8 +764,6 @@ namespace MatterHackers.MatterControl
this.Connection.ReadLineReplacementString = this.Settings.GetValue(SettingsKey.read_regex);
}
public PrinterViewState ViewState { get; } = new PrinterViewState();
private PrinterSettings _settings;

View file

@ -97,10 +97,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
};
printer.ViewState.ViewModeChanged += (s, e) =>
{
this.SetViewMode(e.ViewMode);
};
printer.ViewState.ViewModeChanged += ViewState_ViewModeChanged;
layerScrollbar = new SliceLayerSelector(printer, sceneContext)
{
@ -209,6 +206,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
private void ViewState_ViewModeChanged(object sender, ViewModeChangedEventArgs e)
{
this.SetViewMode(e.ViewMode);
}
private void ConfigurePrinter_Changed(object sender, EventArgs e)
{
this.ProcessOptionalTab();
@ -400,6 +402,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
sceneContext.LoadedGCodeChanged -= BedPlate_LoadedGCodeChanged;
printer.ViewState.ConfigurePrinterChanged -= ConfigurePrinter_Changed;
printer.ViewState.ViewModeChanged -= ViewState_ViewModeChanged;
base.OnClosed(e);
}

View file

@ -200,7 +200,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
set => layerSlider.Value = value;
}
public override void OnBoundsChanged(EventArgs e)
{
base.OnBoundsChanged(e);
@ -212,6 +211,13 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
}
}
public override void OnClosed(ClosedEventArgs e)
{
base.OnClosed(e);
sceneContext.ActiveLayerChanged -= ActiveLayer_Changed;
}
private void ActiveLayer_Changed(object sender, EventArgs e)
{
if (layerSlider != null