Skip to content

Commit

Permalink
Normalize event handling
Browse files Browse the repository at this point in the history
  • Loading branch information
nbusseneau committed Feb 9, 2018
1 parent 23b5029 commit 1a46210
Showing 1 changed file with 26 additions and 11 deletions.
37 changes: 26 additions & 11 deletions CompatibilityManager/ViewModels/SettingsViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -206,17 +206,32 @@ public SettingsViewModel(string registryString) : this()

#region Event subscriptions

private SubscriptionToken flagChanged;
private SubscriptionToken removeCommandIssued;
protected SubscriptionToken flagChanged;
protected SubscriptionToken removeCommandIssued;

private void SubscribeEvents()
protected virtual void SubscribeEvents()
{
this.flagChanged = this.eventAggregator.GetEvent<FlagChanged>().Subscribe(this.OnSettingsChanged);
this.flagChanged = this.eventAggregator.GetEvent<FlagChanged>().Subscribe(this.OnAdditionalFlagChanged);
this.removeCommandIssued = this.eventAggregator.GetEvent<RemoveCommandIssued>().Subscribe(this.RemoveFlag);
}

#endregion

#region Event handlers

protected virtual void OnAdditionalFlagChanged()
{
this.OnSettingsChanged();
}

protected virtual void OnSettingsChanged()
{
this.HasChanged = true;
RaisePropertyChanged(nameof(this.IsCleared));
}

#endregion

#region Helper methods

protected void SaveSettings(CompatibilityMode compatibilityMode)
Expand All @@ -237,12 +252,6 @@ protected void SaveSettings(DPIScaling dpiScaling)
Properties.Settings.Default.Save();
}

protected void OnSettingsChanged()
{
this.HasChanged = true;
RaisePropertyChanged(nameof(this.IsCleared));
}

public void ReloadFromRegistryString(string registryString)
{
var settings = new SettingsViewModel(registryString);
Expand Down Expand Up @@ -288,12 +297,18 @@ protected virtual void Clear()
}

protected void AddFlag()
{
var additionalFlagViewModel = new AdditionalFlagViewModel(this.eventAggregator);
this.AddFlag(additionalFlagViewModel);
}

protected virtual void AddFlag(AdditionalFlagViewModel additionalFlagViewModel)
{
this.AdditionalFlags.Add(new AdditionalFlagViewModel(this.eventAggregator));
this.OnSettingsChanged();
}

protected void RemoveFlag(AdditionalFlagViewModel additionalFlagViewModel)
protected virtual void RemoveFlag(AdditionalFlagViewModel additionalFlagViewModel)
{
this.AdditionalFlags.Remove(additionalFlagViewModel);
this.OnSettingsChanged();
Expand Down

0 comments on commit 1a46210

Please sign in to comment.