Use standard event listener pattern

This commit is contained in:
John Lewin 2018-11-16 08:44:56 -08:00
parent 469a92fab9
commit 2873a74ef7
38 changed files with 1298 additions and 1182 deletions

View file

@ -149,19 +149,8 @@ namespace MatterHackers.MatterControl.PrintLibrary
rootColumn.AddChild(materialsNode);
// need to be hooked up to every existing PrinterConfig and every new PrinterConfig
void AnyPrinterSettingChanged(object s, EventArgs e)
{
string settingsName = (e as StringEventArgs)?.Data;
if (settingsName != null && settingsName == SettingsKey.printer_name)
{
HardwareTreeView.CreatePrinterProfilesTree(printersNode, theme);
this.Invalidate();
}
}
PrinterSettings.AnyPrinterSettingChanged += AnyPrinterSettingChanged;
this.Closed += (s, e) => PrinterSettings.AnyPrinterSettingChanged -= AnyPrinterSettingChanged;
// Register listeners
PrinterSettings.AnyPrinterSettingChanged += Printer_SettingChanged;
// Rebuild the treeview anytime the Profiles list changes
ProfileManager.ProfilesListChanged.RegisterEvent((s, e) =>
@ -232,5 +221,23 @@ namespace MatterHackers.MatterControl.PrintLibrary
printersNode.Expanded = true;
}
public override void OnClosed(EventArgs e)
{
// Unregister listeners
PrinterSettings.AnyPrinterSettingChanged -= Printer_SettingChanged;
base.OnClosed(e);
}
private void Printer_SettingChanged(object s, EventArgs e)
{
string settingsName = (e as StringEventArgs)?.Data;
if (settingsName != null && settingsName == SettingsKey.printer_name)
{
HardwareTreeView.CreatePrinterProfilesTree(printersNode, theme);
this.Invalidate();
}
}
}
}