diff --git a/Wabbajack.Test/app.config b/Wabbajack.Test/app.config index e936cc13..ec5c75f5 100644 --- a/Wabbajack.Test/app.config +++ b/Wabbajack.Test/app.config @@ -6,6 +6,10 @@ + + + + \ No newline at end of file diff --git a/Wabbajack/App.config b/Wabbajack/App.config index b0634730..5905ef43 100644 --- a/Wabbajack/App.config +++ b/Wabbajack/App.config @@ -10,6 +10,10 @@ + + + + diff --git a/Wabbajack/AppState.cs b/Wabbajack/AppState.cs index 6ecc34ab..1b781501 100644 --- a/Wabbajack/AppState.cs +++ b/Wabbajack/AppState.cs @@ -1,4 +1,5 @@ -using System; +using ReactiveUI; +using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; @@ -101,8 +102,8 @@ namespace Wabbajack set { _htmlReport = value; - RaisePropertyChanged(); - RaisePropertyChanged(nameof(ShowReportButton)); + this.RaisePropertyChanged(); + this.RaisePropertyChanged(nameof(ShowReportButton)); } } @@ -292,7 +293,7 @@ namespace Wabbajack set { _splashScreenImage = value; - RaisePropertyChanged(); + this.RaisePropertyChanged(); } } diff --git a/Wabbajack/NexusApi/NexusApi.cs b/Wabbajack/NexusApi/NexusApi.cs index 08713a1c..ead13582 100644 --- a/Wabbajack/NexusApi/NexusApi.cs +++ b/Wabbajack/NexusApi/NexusApi.cs @@ -1,4 +1,5 @@ -using System; +using ReactiveUI; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; @@ -136,8 +137,8 @@ namespace Wabbajack.NexusApi _dailyRemaining = Math.Min(dailyRemaining, hourlyRemaining); _hourlyRemaining = Math.Min(dailyRemaining, hourlyRemaining); } - RaisePropertyChanged(nameof(DailyRemaining)); - RaisePropertyChanged(nameof(HourlyRemaining)); + this.RaisePropertyChanged(nameof(DailyRemaining)); + this.RaisePropertyChanged(nameof(HourlyRemaining)); } #endregion diff --git a/Wabbajack/ViewModel.cs b/Wabbajack/ViewModel.cs index 6f76989c..e7689f3e 100644 --- a/Wabbajack/ViewModel.cs +++ b/Wabbajack/ViewModel.cs @@ -1,20 +1,26 @@ -using System; +using ReactiveUI; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; +using System.Reactive.Disposables; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace Wabbajack { - public class ViewModel : INotifyPropertyChanged + public class ViewModel : ReactiveObject, IDisposable { - public event PropertyChangedEventHandler PropertyChanged; + private readonly Lazy _CompositeDisposable = new Lazy(); + public CompositeDisposable CompositeDisposable => _CompositeDisposable.Value; - protected void RaisePropertyChanged([CallerMemberName] string name = null) + public virtual void Dispose() { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + if (_CompositeDisposable.IsValueCreated) + { + _CompositeDisposable.Value.Dispose(); + } } protected void RaiseAndSetIfChanged( diff --git a/Wabbajack/Wabbajack.csproj b/Wabbajack/Wabbajack.csproj index 4557dd5d..d8b2059e 100644 --- a/Wabbajack/Wabbajack.csproj +++ b/Wabbajack/Wabbajack.csproj @@ -105,6 +105,9 @@ ..\packages\Costura.Fody.4.0.0\lib\net40\Costura.dll + + ..\packages\DynamicData.6.13.17\lib\net461\DynamicData.dll + ..\packages\SharpZipLib.1.2.0\lib\net45\ICSharpCode.SharpZipLib.dll @@ -132,9 +135,28 @@ ..\packages\Newtonsoft.Json.Bson.1.0.2\lib\net45\Newtonsoft.Json.Bson.dll + + ..\packages\Pharmacist.Common.1.2.2\lib\netstandard2.0\Pharmacist.Common.dll + + + + ..\packages\ReactiveUI.10.4.1\lib\net461\ReactiveUI.dll + + + ..\packages\ReactiveUI.Events.WPF.10.4.1\lib\net461\ReactiveUI.Events.WPF.dll + + + ..\packages\ReactiveUI.WPF.10.4.1\lib\net461\ReactiveUI.WPF.dll + ..\packages\SharpCompress.0.23.0\lib\net45\SharpCompress.dll + + ..\packages\Splat.9.1.1\lib\net461\Splat.dll + + + ..\packages\Splat.Drawing.9.1.1\lib\net461\Splat.Drawing.dll + ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll @@ -143,6 +165,11 @@ + + ..\packages\System.Drawing.Primitives.4.3.0\lib\net45\System.Drawing.Primitives.dll + True + True + ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll @@ -151,14 +178,24 @@ ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Reactive.4.2.0\lib\net46\System.Reactive.dll + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + + + ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + diff --git a/Wabbajack/packages.config b/Wabbajack/packages.config index 48d6efbc..7dd622df 100644 --- a/Wabbajack/packages.config +++ b/Wabbajack/packages.config @@ -3,6 +3,7 @@ + @@ -13,13 +14,23 @@ + + + + + + + + + +