diff --git a/Filtration.Common/Filtration.Common.csproj b/Filtration.Common/Filtration.Common.csproj index e48730c..ad88961 100644 --- a/Filtration.Common/Filtration.Common.csproj +++ b/Filtration.Common/Filtration.Common.csproj @@ -66,6 +66,24 @@ <Reference Include="System.Data" /> <Reference Include="System.Xml" /> <Reference Include="WindowsBase" /> + <Reference Include="Xceed.Wpf.AvalonDock, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL"> + <HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath> + </Reference> + <Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL"> + <HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath> + </Reference> + <Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL"> + <HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath> + </Reference> + <Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL"> + <HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath> + </Reference> + <Reference Include="Xceed.Wpf.DataGrid, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL"> + <HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.DataGrid.dll</HintPath> + </Reference> + <Reference Include="Xceed.Wpf.Toolkit, Version=3.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL"> + <HintPath>..\packages\Extended.Wpf.Toolkit.3.4.0\lib\net40\Xceed.Wpf.Toolkit.dll</HintPath> + </Reference> </ItemGroup> <ItemGroup> <Compile Include="Converters\BooleanInverterConverter.cs" /> @@ -80,6 +98,8 @@ <Compile Include="Services\FileSystemService.cs" /> <Compile Include="Services\MessageBoxService.cs" /> <Compile Include="Utilities\LineReader.cs" /> + <Compile Include="Utilities\PathOfExileColors.cs" /> + <Compile Include="Utilities\VisualTreeUtility.cs" /> <Compile Include="ViewModels\PaneViewModel.cs" /> <Compile Include="WindsorInstallers\ServicesInstaller.cs" /> </ItemGroup> diff --git a/Filtration/Views/PathOfExileColors.cs b/Filtration.Common/Utilities/PathOfExileColors.cs similarity index 97% rename from Filtration/Views/PathOfExileColors.cs rename to Filtration.Common/Utilities/PathOfExileColors.cs index 0485dea..de53179 100644 --- a/Filtration/Views/PathOfExileColors.cs +++ b/Filtration.Common/Utilities/PathOfExileColors.cs @@ -2,9 +2,9 @@ using System.Windows.Media; using Xceed.Wpf.Toolkit; -namespace Filtration.Views +namespace Filtration.Common.Utilities { - internal static class PathOfExileColors + public static class PathOfExileColors { static PathOfExileColors() { diff --git a/Filtration/Utility/VisualTreeUtility.cs b/Filtration.Common/Utilities/VisualTreeUtility.cs similarity index 94% rename from Filtration/Utility/VisualTreeUtility.cs rename to Filtration.Common/Utilities/VisualTreeUtility.cs index 79ddec4..0d3b3b0 100644 --- a/Filtration/Utility/VisualTreeUtility.cs +++ b/Filtration.Common/Utilities/VisualTreeUtility.cs @@ -1,7 +1,7 @@ using System.Windows; using System.Windows.Media; -namespace Filtration.Utility +namespace Filtration.Common.Utilities { public class VisualTreeUtility { diff --git a/Filtration.Common/packages.config b/Filtration.Common/packages.config index 5df631c..b679442 100644 --- a/Filtration.Common/packages.config +++ b/Filtration.Common/packages.config @@ -3,5 +3,6 @@ <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="Extended.Wpf.Toolkit" version="3.4.0" targetFramework="net461" /> <package id="MvvmLightLibs" version="5.4.1.1" targetFramework="net461" /> </packages> \ No newline at end of file diff --git a/Filtration.ThemeEditor/Filtration.ThemeEditor.csproj b/Filtration.ThemeEditor/Filtration.ThemeEditor.csproj index 6941c83..cde6dbc 100644 --- a/Filtration.ThemeEditor/Filtration.ThemeEditor.csproj +++ b/Filtration.ThemeEditor/Filtration.ThemeEditor.csproj @@ -158,6 +158,9 @@ <None Include="app.config" /> <None Include="packages.config" /> </ItemGroup> + <ItemGroup> + <WCFMetadata Include="Connected Services\" /> + </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. diff --git a/Filtration.ThemeEditor/Views/ThemeComponentControl.xaml b/Filtration.ThemeEditor/Views/ThemeComponentControl.xaml index 2130c90..072a704 100644 --- a/Filtration.ThemeEditor/Views/ThemeComponentControl.xaml +++ b/Filtration.ThemeEditor/Views/ThemeComponentControl.xaml @@ -9,6 +9,7 @@ xmlns:views="clr-namespace:Filtration.ThemeEditor.Views" xmlns:extensions="clr-namespace:Filtration.Common.Extensions;assembly=Filtration.Common" xmlns:enums="clr-namespace:Filtration.ObjectModel.Enums;assembly=Filtration.ObjectModel" + xmlns:utilities="clr-namespace:Filtration.Common.Utilities;assembly=Filtration.Common" mc:Ignorable="d" d:DataContext="{d:DesignInstance Type=themeEditor:ThemeComponent}" d:DesignHeight="100" d:DesignWidth="200"> @@ -63,8 +64,8 @@ <ContentControl Grid.Row="2" Content="{Binding Mode=OneWay}"> <ContentControl.Resources> <!-- Color Theme Template --> - <DataTemplate DataType="{x:Type themeEditor:ColorThemeComponent}"> - <xctk:ColorPicker SelectedColor="{Binding Color}" /> + <DataTemplate DataType="{x:Type themeEditor:ColorThemeComponent}"> + <xctk:ColorPicker SelectedColor="{Binding Color}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" MouseDown="ColorPicker_OnMouseDown" /> </DataTemplate> <!-- Integer Theme Template --> diff --git a/Filtration.ThemeEditor/Views/ThemeComponentControl.xaml.cs b/Filtration.ThemeEditor/Views/ThemeComponentControl.xaml.cs index 9377630..5e3dc42 100644 --- a/Filtration.ThemeEditor/Views/ThemeComponentControl.xaml.cs +++ b/Filtration.ThemeEditor/Views/ThemeComponentControl.xaml.cs @@ -1,4 +1,6 @@ -namespace Filtration.ThemeEditor.Views +using System.Windows.Input; + +namespace Filtration.ThemeEditor.Views { public partial class ThemeComponentControl { @@ -6,5 +8,13 @@ { InitializeComponent(); } + + private void ColorPicker_OnMouseDown(object sender, MouseButtonEventArgs e) + { + // For some reason if we don't mark OnMouseDown events as handled for this control + // it ignores them and they end up getting picked up by the parent ListBoxItem instead, + // resulting in the Advanced tab not being clickable. + e.Handled = true; + } } } diff --git a/Filtration/Filtration.csproj b/Filtration/Filtration.csproj index d63e6d7..0a74b8a 100644 --- a/Filtration/Filtration.csproj +++ b/Filtration/Filtration.csproj @@ -247,7 +247,6 @@ <Compile Include="UserControls\ThemeComponentSelectionControl.xaml.cs"> <DependentUpon>ThemeComponentSelectionControl.xaml</DependentUpon> </Compile> - <Compile Include="Utility\VisualTreeUtility.cs" /> <Compile Include="ViewModels\DesignTime\DesignTimeItemFilterBlockViewModel.cs" /> <Compile Include="ViewModels\DesignTime\DesignTimeSettingsPageViewModel.cs" /> <Compile Include="Views\AttachedProperties\SelectedItemsAttachedProperty.cs" /> @@ -279,7 +278,6 @@ </Compile> <Compile Include="Views\Behaviors\BindableSelectedItemBehavior.cs" /> <Compile Include="Views\BindingProxy.cs" /> - <Compile Include="Views\PathOfExileColors.cs" /> <Compile Include="Views\SettingsPageView.xaml.cs"> <DependentUpon>SettingsPageView.xaml</DependentUpon> </Compile> diff --git a/Filtration/Filtration.nuspec b/Filtration/Filtration.nuspec index b822391..92cc424 100644 --- a/Filtration/Filtration.nuspec +++ b/Filtration/Filtration.nuspec @@ -17,6 +17,7 @@ * New buttons for adding/removing DisableDropSound from selected blocks have been added (#110) * The Enable/Disable Block toggle button is now visible on both the Regular Block Items and Appearance Block Items views * When there are too many block items to fit horizontally in a block a horizontal scrollbar will now appear +* Fixed the Advanced tab in the Color Picker in the Theme Editor not being clickable (#115) * Fixed the previously incorrect handling of DisableDropSound as a true/false value when in fact it is enabled/disabled purely by its presence or lack thereof in a block (#111) * Fixed the application freezing for a long period of time when Ctrl+A (Select All) is performed * Fixed the Switch to Appearance/Regular Block Items text overlapping block items diff --git a/Filtration/UserControls/BlockItemControl.xaml b/Filtration/UserControls/BlockItemControl.xaml index c5ef873..5be1988 100644 --- a/Filtration/UserControls/BlockItemControl.xaml +++ b/Filtration/UserControls/BlockItemControl.xaml @@ -11,6 +11,7 @@ xmlns:enums="clr-namespace:Filtration.ObjectModel.Enums;assembly=Filtration.ObjectModel" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:views="clr-namespace:Filtration.Views" + xmlns:utilities="clr-namespace:Filtration.Common.Utilities;assembly=Filtration.Common" mc:Ignorable="d" d:DataContext="{d:DesignInstance Type=userControls:BlockItemControl}" d:DesignHeight="200" d:DesignWidth="190"> @@ -117,7 +118,7 @@ <!-- Color Template --> <DataTemplate DataType="{x:Type blockItemBaseTypes:ColorBlockItem}"> <StackPanel> - <xctk:ColorPicker SelectedColor="{Binding Color}" AvailableColors="{Binding ElementName=BlockItemContentControl, Path=DataContext.AvailableColors }" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors"/> + <xctk:ColorPicker SelectedColor="{Binding Color}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors"/> <userControls:ThemeComponentSelectionControl ThemeComponent="{Binding ThemeComponent}" Margin="0,2,0,2"> diff --git a/Filtration/UserControls/BlockItemControl.xaml.cs b/Filtration/UserControls/BlockItemControl.xaml.cs index db0909c..da13135 100644 --- a/Filtration/UserControls/BlockItemControl.xaml.cs +++ b/Filtration/UserControls/BlockItemControl.xaml.cs @@ -1,16 +1,13 @@ using System.Collections.Generic; -using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows; using Filtration.Annotations; using Filtration.ObjectModel; using Filtration.ObjectModel.BlockItemBaseTypes; -using Filtration.ObjectModel.Enums; -using Filtration.ObjectModel.ThemeEditor; -using Filtration.Views; +using Filtration.ObjectModel.Enums; +using Filtration.ObjectModel.ThemeEditor; using GalaSoft.MvvmLight.CommandWpf; -using Xceed.Wpf.Toolkit; namespace Filtration.UserControls { @@ -81,9 +78,6 @@ namespace Filtration.UserControls } } - - public ObservableCollection<ColorItem> AvailableColors => PathOfExileColors.DefaultColors; - public List<string> SoundsAvailable => new List<string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "ShGeneral", "ShBlessed", "ShChaos", "ShDivine", "ShExalted", "ShMirror", "ShAlchemy", diff --git a/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs b/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs index a8c4013..5b6ff39 100644 --- a/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs +++ b/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs @@ -139,7 +139,6 @@ namespace Filtration.ViewModels.DesignTime typeof (HasExplicitModBlockItem) }; public List<Type> AudioVisualBlockItemTypesAvailable { get; } - public ObservableCollection<ColorItem> AvailableColors { get; } public Color DisplayTextColor => Colors.Red; public Color DisplayBackgroundColor => Colors.White; public Color DisplayBorderColor => Colors.GreenYellow; diff --git a/Filtration/ViewModels/ItemFilterBlockViewModel.cs b/Filtration/ViewModels/ItemFilterBlockViewModel.cs index 7a8c056..5403e5f 100644 --- a/Filtration/ViewModels/ItemFilterBlockViewModel.cs +++ b/Filtration/ViewModels/ItemFilterBlockViewModel.cs @@ -54,7 +54,6 @@ namespace Filtration.ViewModels IEnumerable<string> AutocompleteItemMods { get; } List<Type> BlockItemTypesAvailable { get; } List<Type> AudioVisualBlockItemTypesAvailable { get; } - ObservableCollection<ColorItem> AvailableColors { get; } Color DisplayTextColor { get; } Color DisplayBackgroundColor { get; } Color DisplayBorderColor { get; } @@ -276,8 +275,6 @@ namespace Filtration.ViewModels } } - public ObservableCollection<ColorItem> AvailableColors => PathOfExileColors.DefaultColors; - public Color DisplayTextColor => Block.DisplayTextColor; public Color DisplayBackgroundColor => Block.DisplayBackgroundColor; public Color DisplayBorderColor => Block.DisplayBorderColor; diff --git a/Filtration/ViewModels/ReplaceColorsViewModel.cs b/Filtration/ViewModels/ReplaceColorsViewModel.cs index e1f43ee..5b84a04 100644 --- a/Filtration/ViewModels/ReplaceColorsViewModel.cs +++ b/Filtration/ViewModels/ReplaceColorsViewModel.cs @@ -1,12 +1,9 @@ -using System.Collections.ObjectModel; -using System.Linq; +using System.Linq; using System.Windows.Media; using Filtration.ObjectModel; using Filtration.ObjectModel.BlockItemTypes; -using Filtration.Views; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.CommandWpf; -using Xceed.Wpf.Toolkit; namespace Filtration.ViewModels { @@ -62,8 +59,6 @@ namespace Filtration.ViewModels _itemFilterScript = itemFilterScript; } - public ObservableCollection<ColorItem> AvailableColors => PathOfExileColors.DefaultColors; - public Color NewTextColor { get => _replaceColorsParameterSet.NewTextColor; diff --git a/Filtration/Views/ItemFilterBlockView.xaml.cs b/Filtration/Views/ItemFilterBlockView.xaml.cs index 59f51df..b7f7c6b 100644 --- a/Filtration/Views/ItemFilterBlockView.xaml.cs +++ b/Filtration/Views/ItemFilterBlockView.xaml.cs @@ -2,8 +2,8 @@ using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; +using Filtration.Common.Utilities; using Filtration.UserControls; -using Filtration.Utility; namespace Filtration.Views { diff --git a/Filtration/Views/ReplaceColorsWindow.xaml b/Filtration/Views/ReplaceColorsWindow.xaml index 7a06e44..8e15527 100644 --- a/Filtration/Views/ReplaceColorsWindow.xaml +++ b/Filtration/Views/ReplaceColorsWindow.xaml @@ -6,6 +6,7 @@ xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:viewModels="clr-namespace:Filtration.ViewModels" xmlns:userControls="clr-namespace:Filtration.UserControls" + xmlns:utilities="clr-namespace:Filtration.Common.Utilities;assembly=Filtration.Common" mc:Ignorable="d" d:DataContext="{d:DesignInstance Type=viewModels:ReplaceColorsViewModel}" Title="Replace Script Colors" Height="280" Width="540" @@ -31,22 +32,22 @@ </Grid.ColumnDefinitions> <CheckBox Grid.Row="0" Grid.Column="0" Content="Replace Text Color" IsChecked="{Binding ReplaceTextColor}" /> <TextBlock Grid.Row="0" Grid.Column="2" VerticalAlignment="Center">Existing Text Color</TextBlock> - <xctk:ColorPicker Grid.Row="0" Grid.Column="4" SelectedColor="{Binding ReplaceColorsParameterSet.OldTextColor}" AvailableColors="{Binding AvailableColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> + <xctk:ColorPicker Grid.Row="0" Grid.Column="4" SelectedColor="{Binding ReplaceColorsParameterSet.OldTextColor}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> <TextBlock Grid.Row="1" Grid.Column="2" VerticalAlignment="Center">New Text Color</TextBlock> - <xctk:ColorPicker Grid.Row="1" Grid.Column="4" SelectedColor="{Binding NewTextColor}" AvailableColors="{Binding AvailableColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> + <xctk:ColorPicker Grid.Row="1" Grid.Column="4" SelectedColor="{Binding NewTextColor}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> <CheckBox Grid.Row="2" Grid.Column="0" Content="Replace Background Color" IsChecked="{Binding ReplaceBackgroundColor}" /> <TextBlock Grid.Row="2" Grid.Column="2" VerticalAlignment="Center">Existing Background Color</TextBlock> - <xctk:ColorPicker Grid.Row="2" Grid.Column="4" SelectedColor="{Binding ReplaceColorsParameterSet.OldBackgroundColor}" AvailableColors="{Binding AvailableColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> + <xctk:ColorPicker Grid.Row="2" Grid.Column="4" SelectedColor="{Binding ReplaceColorsParameterSet.OldBackgroundColor}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> <TextBlock Grid.Row="3" Grid.Column="2" VerticalAlignment="Center">New Background Color</TextBlock> - <xctk:ColorPicker Grid.Row="3" Grid.Column="4" SelectedColor="{Binding NewBackgroundColor}" AvailableColors="{Binding AvailableColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> + <xctk:ColorPicker Grid.Row="3" Grid.Column="4" SelectedColor="{Binding NewBackgroundColor}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> <CheckBox Grid.Row="4" Grid.Column="0" Content="Replace Border Color" IsChecked="{Binding ReplaceBorderColor}" /> <TextBlock Grid.Row="4" Grid.Column="2" VerticalAlignment="Center">Existing Border Color</TextBlock> - <xctk:ColorPicker Grid.Row="4" Grid.Column="4" SelectedColor="{Binding ReplaceColorsParameterSet.OldBorderColor}" AvailableColors="{Binding AvailableColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> + <xctk:ColorPicker Grid.Row="4" Grid.Column="4" SelectedColor="{Binding ReplaceColorsParameterSet.OldBorderColor}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> <TextBlock Grid.Row="5" Grid.Column="2" VerticalAlignment="Center">New Border Color</TextBlock> - <xctk:ColorPicker Grid.Row="5" Grid.Column="4" SelectedColor="{Binding NewBorderColor}" AvailableColors="{Binding AvailableColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> + <xctk:ColorPicker Grid.Row="5" Grid.Column="4" SelectedColor="{Binding NewBorderColor}" AvailableColors="{x:Static utilities:PathOfExileColors.DefaultColors}" ShowAvailableColors="True" AvailableColorsHeader="Path of Exile Colors" /> <userControls:ItemPreviewControl Grid.Row="6" Grid.Column="4" TextColor="{Binding DisplayTextColor}" BackgroundColor="{Binding DisplayBackgroundColor}" BorderColor="{Binding DisplayBorderColor}" /> <TextBlock Grid.Row="6" Grid.Column="2" VerticalAlignment="Center">Preview</TextBlock>