diff --git a/Filtration.ItemFilterPreview.Tests/app.config b/Filtration.ItemFilterPreview.Tests/app.config index c486a0d..8ba7191 100644 --- a/Filtration.ItemFilterPreview.Tests/app.config +++ b/Filtration.ItemFilterPreview.Tests/app.config @@ -1,39 +1,39 @@ -<?xml version="1.0" encoding="utf-8"?> -<configuration> - <runtime> - <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> - <dependentAssembly> - <assemblyIdentity name="Xceed.Wpf.AvalonDock" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="ControlzEx" publicKeyToken="f08b075e934b7045" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-2.2.0.4" newVersion="2.2.0.4" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="Xceed.Wpf.Toolkit" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-2.0.4.0" newVersion="2.0.4.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" /> - </dependentAssembly> - </assemblyBinding> - </runtime> +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Xceed.Wpf.AvalonDock" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="ControlzEx" publicKeyToken="f08b075e934b7045" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-2.2.0.4" newVersion="2.2.0.4" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Xceed.Wpf.Toolkit" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-2.0.4.0" newVersion="2.0.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> </configuration> \ No newline at end of file diff --git a/Filtration.Tests/app.config b/Filtration.Tests/app.config index dcaf02c..c7c66cc 100644 --- a/Filtration.Tests/app.config +++ b/Filtration.Tests/app.config @@ -1,43 +1,43 @@ -<?xml version="1.0" encoding="utf-8"?> -<configuration> - <runtime> - <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> - <dependentAssembly> - <assemblyIdentity name="Xceed.Wpf.AvalonDock" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="ControlzEx" publicKeyToken="f08b075e934b7045" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-2.2.0.4" newVersion="2.2.0.4" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="Xceed.Wpf.Toolkit" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-2.0.4.0" newVersion="2.0.4.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" /> - </dependentAssembly> - </assemblyBinding> - </runtime> -<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /></startup></configuration> +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Xceed.Wpf.AvalonDock" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="ControlzEx" publicKeyToken="f08b075e934b7045" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-2.2.0.4" newVersion="2.2.0.4" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="Xceed.Wpf.Toolkit" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-2.9.0.0" newVersion="2.9.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-2.0.4.0" newVersion="2.0.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /></startup></configuration> diff --git a/Filtration/App.config b/Filtration/App.config index 79a6b82..6ab6fc5 100644 --- a/Filtration/App.config +++ b/Filtration/App.config @@ -1,95 +1,95 @@ -<?xml version="1.0" encoding="utf-8"?> -<configuration> - <configSections> - <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <section name="Filtration.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> - </sectionGroup> - <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> - <section name="Filtration.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> - </sectionGroup> - </configSections> - <startup> - <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> - </startup> - <userSettings> - <Filtration.Properties.Settings> - <setting name="DefaultFilterDirectory" serializeAs="String"> - <value /> - </setting> - <setting name="ExtraLineBetweenBlocks" serializeAs="String"> - <value>True</value> - </setting> - <setting name="SuppressUpdatesUpToVersionMajorPart" serializeAs="String"> - <value>0</value> - </setting> - <setting name="SuppressUpdates" serializeAs="String"> - <value>False</value> - </setting> - <setting name="SuppressUpdatesUpToVersionMinorPart" serializeAs="String"> - <value>0</value> - </setting> - <setting name="StaticDataLastUpdated" serializeAs="String"> - <value>2016-01-01</value> - </setting> - <setting name="DownloadPrereleaseUpdates" serializeAs="String"> - <value>False</value> - </setting> - <setting name="ShowSectionBrowser" serializeAs="String"> - <value>True</value> - </setting> - <setting name="ShowBlockGroupBrowser" serializeAs="String"> - <value>True</value> - </setting> - <setting name="ShowBlockOutputPreview" serializeAs="String"> - <value>True</value> - </setting> - <setting name="ShowAdvanced" serializeAs="String"> - <value>False</value> - </setting> - <setting name="WindowState" serializeAs="String"> - <value>Normal</value> - </setting> - <setting name="WindowWidth" serializeAs="String"> - <value>1200</value> - </setting> - <setting name="WindowHeight" serializeAs="String"> - <value>800</value> - </setting> - <setting name="LastOpenScripts" serializeAs="String"> - <value /> - </setting> - <setting name="BlocksExpandedOnOpen" serializeAs="String"> - <value>True</value> - </setting> - </Filtration.Properties.Settings> - </userSettings> - <runtime> - <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> - <dependentAssembly> - <assemblyIdentity name="Xceed.Wpf.AvalonDock" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-2.0.4.0" newVersion="2.0.4.0" /> - </dependentAssembly> - <dependentAssembly> - <assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" /> - <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> - </dependentAssembly> - </assemblyBinding> - </runtime> - <applicationSettings> - <Filtration.Properties.Settings> - <setting name="ItemBaseTypesStaticDataUrl" serializeAs="String"> - <value>http://ben-wallis.github.io/Filtration/ItemBaseTypes.txt</value> - </setting> - <setting name="ItemClassesStaticDataUrl" serializeAs="String"> - <value>http://ben-wallis.github.io/Filtration/ItemClasses.txt</value> - </setting> - <setting name="UpdateDataUrl" serializeAs="String"> - <value>http://ben-wallis.github.io/Filtration/filtration_version.xml</value> - </setting> - </Filtration.Properties.Settings> - </applicationSettings> -</configuration> +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <configSections> + <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <section name="Filtration.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> + </sectionGroup> + <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> + <section name="Filtration.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> + </sectionGroup> + </configSections> + <startup> + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> + </startup> + <userSettings> + <Filtration.Properties.Settings> + <setting name="DefaultFilterDirectory" serializeAs="String"> + <value /> + </setting> + <setting name="ExtraLineBetweenBlocks" serializeAs="String"> + <value>True</value> + </setting> + <setting name="SuppressUpdatesUpToVersionMajorPart" serializeAs="String"> + <value>0</value> + </setting> + <setting name="SuppressUpdates" serializeAs="String"> + <value>False</value> + </setting> + <setting name="SuppressUpdatesUpToVersionMinorPart" serializeAs="String"> + <value>0</value> + </setting> + <setting name="StaticDataLastUpdated" serializeAs="String"> + <value>2016-01-01</value> + </setting> + <setting name="DownloadPrereleaseUpdates" serializeAs="String"> + <value>False</value> + </setting> + <setting name="ShowSectionBrowser" serializeAs="String"> + <value>True</value> + </setting> + <setting name="ShowBlockGroupBrowser" serializeAs="String"> + <value>True</value> + </setting> + <setting name="ShowBlockOutputPreview" serializeAs="String"> + <value>True</value> + </setting> + <setting name="ShowAdvanced" serializeAs="String"> + <value>False</value> + </setting> + <setting name="WindowState" serializeAs="String"> + <value>Normal</value> + </setting> + <setting name="WindowWidth" serializeAs="String"> + <value>1200</value> + </setting> + <setting name="WindowHeight" serializeAs="String"> + <value>800</value> + </setting> + <setting name="LastOpenScripts" serializeAs="String"> + <value /> + </setting> + <setting name="BlocksExpandedOnOpen" serializeAs="String"> + <value>True</value> + </setting> + </Filtration.Properties.Settings> + </userSettings> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Xceed.Wpf.AvalonDock" publicKeyToken="3e4669d2f30244f4" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.4.0.0" newVersion="3.4.0.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-2.0.4.0" newVersion="2.0.4.0" /> + </dependentAssembly> + <dependentAssembly> + <assemblyIdentity name="System.Windows.Interactivity" publicKeyToken="31bf3856ad364e35" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> + <applicationSettings> + <Filtration.Properties.Settings> + <setting name="ItemBaseTypesStaticDataUrl" serializeAs="String"> + <value>http://ben-wallis.github.io/Filtration/ItemBaseTypes.txt</value> + </setting> + <setting name="ItemClassesStaticDataUrl" serializeAs="String"> + <value>http://ben-wallis.github.io/Filtration/ItemClasses.txt</value> + </setting> + <setting name="UpdateDataUrl" serializeAs="String"> + <value>http://ben-wallis.github.io/Filtration/filtration_version.xml</value> + </setting> + </Filtration.Properties.Settings> + </applicationSettings> +</configuration> diff --git a/Filtration/Filtration.csproj b/Filtration/Filtration.csproj index f6cb9e6..24ba2cd 100644 --- a/Filtration/Filtration.csproj +++ b/Filtration/Filtration.csproj @@ -76,6 +76,9 @@ <Reference Include="DeltaCompressionDotNet.PatchApi, Version=1.1.0.0, Culture=neutral, PublicKeyToken=3e8888ee913ed789, processorArchitecture=MSIL"> <HintPath>..\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.PatchApi.dll</HintPath> </Reference> + <Reference Include="DynamicData, Version=6.7.0.2529, Culture=neutral, processorArchitecture=MSIL"> + <HintPath>..\packages\DynamicData.6.7.0.2529\lib\net46\DynamicData.dll</HintPath> + </Reference> <Reference Include="Fluent, Version=6.1.0.326, Culture=neutral, processorArchitecture=MSIL"> <HintPath>..\packages\Fluent.Ribbon.6.1.0.326\lib\net45\Fluent.dll</HintPath> </Reference> @@ -130,6 +133,9 @@ <Reference Include="System.Data" /> <Reference Include="System.Drawing" /> <Reference Include="System.IO.Compression" /> + <Reference Include="System.Reactive, Version=4.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263, processorArchitecture=MSIL"> + <HintPath>..\packages\System.Reactive.4.0.0\lib\net46\System.Reactive.dll</HintPath> + </Reference> <Reference Include="System.Runtime.Remoting" /> <Reference Include="System.Runtime.Serialization" /> <Reference Include="System.ServiceModel" /> @@ -138,6 +144,7 @@ <HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath> </Reference> <Reference Include="System.Web" /> + <Reference Include="System.Windows" /> <Reference Include="System.Windows.Controls.Input.Toolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> <HintPath>..\packages\WPFToolkit.3.5.50211.1\lib\System.Windows.Controls.Input.Toolkit.dll</HintPath> diff --git a/Filtration/ViewModels/ItemFilterScriptViewModel.cs b/Filtration/ViewModels/ItemFilterScriptViewModel.cs index 60a54d3..663b9ca 100644 --- a/Filtration/ViewModels/ItemFilterScriptViewModel.cs +++ b/Filtration/ViewModels/ItemFilterScriptViewModel.cs @@ -6,11 +6,13 @@ using System.ComponentModel; using System.Diagnostics; using System.IO; using System.Linq; +using System.Reactive.Linq; using System.Threading.Tasks; using System.Windows; using System.Windows.Data; using System.Windows.Forms; using System.Windows.Media.Imaging; +using DynamicData.Binding; using Filtration.Common.Services; using Filtration.Common.ViewModels; using Filtration.Interface; @@ -111,6 +113,7 @@ namespace Filtration.ViewModels private Predicate<IItemFilterBlockViewModel> _blockFilterPredicate; private ICommandManager _scriptCommandManager; + private List<IDisposable> _subscriptions; private ObservableCollection<string> _customSoundsAvailable; private readonly List<IItemFilterBlockViewModelBase> _lastAddedBlocks; @@ -130,14 +133,20 @@ namespace Filtration.ViewModels _persistenceService = persistenceService; _messageBoxService = messageBoxService; _clipboardService = clipboardService; + _subscriptions = new List<IDisposable>(); ItemFilterBlockViewModels = new ObservableCollection<IItemFilterBlockViewModelBase>(); - SelectedBlockViewModels = new ObservableCollection<IItemFilterBlockViewModelBase>(); - SelectedBlockViewModels.CollectionChanged += (s, e) => - { - RaisePropertyChanged(nameof(SelectedBlockViewModels)); - RaisePropertyChanged(nameof(LastSelectedBlockViewModel)); - Messenger.Default.Send(new NotificationMessage("LastSelectedBlockChanged")); - }; + SelectedBlockViewModels = new ObservableCollection<IItemFilterBlockViewModelBase>(); + + _subscriptions.Add( + SelectedBlockViewModels.ToObservableChangeSet() + .Throttle(TimeSpan.FromMilliseconds(30)) + .Subscribe(x => { + RaisePropertyChanged(nameof(SelectedBlockViewModels)); + RaisePropertyChanged(nameof(LastSelectedBlockViewModel)); + Messenger.Default.Send(new NotificationMessage("LastSelectedBlockChanged")); + }) + ); + _lastAddedBlocks = new List<IItemFilterBlockViewModelBase>(); _showAdvanced = Settings.Default.ShowAdvanced; @@ -815,6 +824,11 @@ namespace Filtration.ViewModels private void CloseScript() { + foreach (var disposable in Enumerable.Reverse(_subscriptions)) + { + disposable.Dispose(); + } + var openMasterThemForScript = _avalonDockWorkspaceViewModel.OpenMasterThemeForScript(this); if (openMasterThemForScript != null) diff --git a/Filtration/packages.config b/Filtration/packages.config index 483d44a..8428a6f 100644 --- a/Filtration/packages.config +++ b/Filtration/packages.config @@ -1,25 +1,27 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="AutoMapper" version="8.0.0" targetFramework="net461" /> - <package id="Castle.Core" version="4.3.1" targetFramework="net461" /> - <package id="Castle.Windsor" version="4.1.1" targetFramework="net461" /> - <package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" /> - <package id="ControlzEx" version="3.0.2.4" targetFramework="net461" /> - <package id="DeltaCompressionDotNet" version="1.1.0" targetFramework="net461" /> - <package id="Extended.Wpf.Toolkit" version="3.4.0" targetFramework="net461" /> - <package id="Fluent.Ribbon" version="6.1.0.326" targetFramework="net461" /> - <package id="MahApps.Metro" version="1.2.4.0" targetFramework="net461" /> - <package id="Mono.Cecil" version="0.9.6.1" targetFramework="net461" /> - <package id="MvvmLightLibs" version="5.4.1.1" targetFramework="net461" /> - <package id="NLog" version="4.5.11" targetFramework="net461" /> - <package id="NLog.Schema" version="4.5.11" targetFramework="net461" /> - <package id="NuGet.CommandLine" version="4.7.1" targetFramework="net461" developmentDependency="true" /> - <package id="SharpCompress" version="0.17.1" targetFramework="net461" /> - <package id="Splat" version="1.6.2" targetFramework="net461" /> - <package id="squirrel.windows" version="1.9.0" targetFramework="net461" /> - <package id="System.ValueTuple" version="4.5.0" targetFramework="net461" /> - <package id="WindowsAPICodePack-Core" version="1.1.2" targetFramework="net461" /> - <package id="WindowsAPICodePack-Shell" version="1.1.1" targetFramework="net461" /> - <package id="WpfAnimatedGif" version="1.4.17" targetFramework="net461" /> - <package id="WPFToolkit" version="3.5.50211.1" targetFramework="net451" /> +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="AutoMapper" version="8.0.0" targetFramework="net461" /> + <package id="Castle.Core" version="4.3.1" targetFramework="net461" /> + <package id="Castle.Windsor" version="4.1.1" targetFramework="net461" /> + <package id="CommonServiceLocator" version="2.0.4" targetFramework="net461" /> + <package id="ControlzEx" version="3.0.2.4" targetFramework="net461" /> + <package id="DeltaCompressionDotNet" version="1.1.0" targetFramework="net461" /> + <package id="DynamicData" version="6.7.0.2529" targetFramework="net461" /> + <package id="Extended.Wpf.Toolkit" version="3.4.0" targetFramework="net461" /> + <package id="Fluent.Ribbon" version="6.1.0.326" targetFramework="net461" /> + <package id="MahApps.Metro" version="1.2.4.0" targetFramework="net461" /> + <package id="Mono.Cecil" version="0.9.6.1" targetFramework="net461" /> + <package id="MvvmLightLibs" version="5.4.1.1" targetFramework="net461" /> + <package id="NLog" version="4.5.11" targetFramework="net461" /> + <package id="NLog.Schema" version="4.5.11" targetFramework="net461" /> + <package id="NuGet.CommandLine" version="4.7.1" targetFramework="net461" developmentDependency="true" /> + <package id="SharpCompress" version="0.17.1" targetFramework="net461" /> + <package id="Splat" version="1.6.2" targetFramework="net461" /> + <package id="squirrel.windows" version="1.9.0" targetFramework="net461" /> + <package id="System.Reactive" version="4.0.0" targetFramework="net461" /> + <package id="System.ValueTuple" version="4.5.0" targetFramework="net461" /> + <package id="WindowsAPICodePack-Core" version="1.1.2" targetFramework="net461" /> + <package id="WindowsAPICodePack-Shell" version="1.1.1" targetFramework="net461" /> + <package id="WpfAnimatedGif" version="1.4.17" targetFramework="net461" /> + <package id="WPFToolkit" version="3.5.50211.1" targetFramework="net451" /> </packages> \ No newline at end of file