Added support for propogating child session collection changed events

This commit is contained in:
David Sparer
2016-09-20 11:36:45 -06:00
parent 1bda39bc7e
commit a938e098e5

View File

@@ -61,21 +61,24 @@ namespace mRemoteNG.Config.Putty
public void AddProvider(AbstractPuttySessionsProvider newProvider)
{
if (_providers.Contains(newProvider)) return;
_providers.Add(newProvider);
newProvider.PuttySessionsCollectionChanged += PuttySessionsCollectionChanged;
RaiseSessionProvidersCollectionChangedEvent(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, newProvider));
}
public void AddProviders(IEnumerable<AbstractPuttySessionsProvider> newProviders)
{
_providers.AddRange(newProviders);
RaiseSessionProvidersCollectionChangedEvent(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, newProviders));
foreach (var provider in newProviders)
AddProvider(provider);
}
public void RemoveProvider(AbstractPuttySessionsProvider providerToRemove)
{
var wasRemoved = _providers.Remove(providerToRemove);
if (wasRemoved)
RaiseSessionProvidersCollectionChangedEvent(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, providerToRemove));
if (!_providers.Contains(providerToRemove)) return;
_providers.Remove(providerToRemove);
providerToRemove.PuttySessionsCollectionChanged -= PuttySessionsCollectionChanged;
RaiseSessionProvidersCollectionChangedEvent(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, providerToRemove));
}
public void PuttySessionChanged(object sender, PuttySessionChangedEventArgs e)