mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 03:48:56 +00:00
Editor - Fixed a bunch of memory leaks
This commit is contained in:
1 parent
84b394fc51
commit
9da71f7b97
6 files changed
+60
-93
No files matched your search
@@ -62,7 +62,8 @@ public abstract class TreeItemViewModel : ActivatableViewModelBase
|
||||
_isFocused = ProfileEditorService.FocusMode
|
||||
.CombineLatest(ProfileEditorService.ProfileElement)
|
||||
.Select(tuple => GetIsFocused(tuple.First, tuple.Second))
|
||||
.ToProperty(this, vm => vm.IsFocused);
|
||||
.ToProperty(this, vm => vm.IsFocused)
|
||||
.DisposeWith(d);
|
||||
|
||||
ProfileEditorService.Time.Subscribe(t => _time = t).DisposeWith(d);
|
||||
ProfileEditorService.ProfileElement.Subscribe(element => _currentProfileElement = element).DisposeWith(d);
|
||||
|
||||
@@ -43,15 +43,6 @@ public class VisualEditorViewModel : ActivatableViewModelBase
|
||||
_suspendedEditing = profileEditorService.SuspendedEditing.ToProperty(this, vm => vm.SuspendedEditing).DisposeWith(d);
|
||||
profileEditorService.ProfileConfiguration.Subscribe(CreateVisualizers).DisposeWith(d);
|
||||
|
||||
profileEditorService.Tools
|
||||
.ToObservableChangeSet()
|
||||
.AutoRefreshOnObservable(t => t.WhenAnyValue(vm => vm.IsSelected))
|
||||
.Filter(t => t.IsSelected)
|
||||
.Bind(out ReadOnlyObservableCollection<IToolViewModel> tools)
|
||||
.Subscribe()
|
||||
.DisposeWith(d);
|
||||
Tools = tools;
|
||||
|
||||
this.WhenAnyValue(vm => vm.ProfileConfiguration)
|
||||
.Select(p => p?.Profile)
|
||||
.Select(p => p != null
|
||||
@@ -74,15 +65,15 @@ public class VisualEditorViewModel : ActivatableViewModelBase
|
||||
public ProfileConfiguration? ProfileConfiguration => _profileConfiguration?.Value;
|
||||
public bool SuspendedEditing => _suspendedEditing?.Value ?? false;
|
||||
|
||||
public ObservableCollection<ArtemisDevice> Devices { get; }
|
||||
public ReadOnlyObservableCollection<IVisualizerViewModel> Visualizers { get; }
|
||||
|
||||
public ReadOnlyObservableCollection<IToolViewModel>? Tools
|
||||
{
|
||||
get => _tools;
|
||||
set => RaiseAndSetIfChanged(ref _tools, value);
|
||||
}
|
||||
|
||||
public ReadOnlyObservableCollection<IVisualizerViewModel> Visualizers { get; }
|
||||
public ObservableCollection<ArtemisDevice> Devices { get; }
|
||||
|
||||
private void RemoveElement(EventPattern<ProfileElementEventArgs> eventPattern)
|
||||
{
|
||||
List<IVisualizerViewModel> visualizers = Visualizers.Where(v => v.ProfileElement == eventPattern.EventArgs.ProfileElement).ToList();
|
||||
@@ -113,7 +104,17 @@ public class VisualEditorViewModel : ActivatableViewModelBase
|
||||
visualizerViewModels.Add(_vmFactory.LayerShapeVisualizerViewModel(layer));
|
||||
visualizerViewModels.Add(_vmFactory.LayerVisualizerViewModel(layer));
|
||||
}
|
||||
|
||||
|
||||
public void SetTools(SourceList<IToolViewModel> tools)
|
||||
{
|
||||
tools.Connect()
|
||||
.AutoRefreshOnObservable(t => t.WhenAnyValue(vm => vm.IsSelected))
|
||||
.Filter(t => t.IsSelected)
|
||||
.Bind(out ReadOnlyObservableCollection<IToolViewModel> selectedTools)
|
||||
.Subscribe();
|
||||
Tools = selectedTools;
|
||||
}
|
||||
|
||||
public void RequestAutoFit()
|
||||
{
|
||||
AutoFitRequested?.Invoke(this, EventArgs.Empty);
|
||||
|
||||
Reference in new issue
Block a user