Fixed block group advanced status being lost during save
This commit is contained in:
parent
4faa12474a
commit
e53e24100f
|
@ -44,14 +44,14 @@ namespace Filtration.ObjectModel
|
||||||
{
|
{
|
||||||
var currentBlockGroup = this;
|
var currentBlockGroup = this;
|
||||||
|
|
||||||
var outputString = GroupName;
|
var outputString = (Advanced ? "~" : string.Empty) + GroupName;
|
||||||
|
|
||||||
// TODO: This is retarded, fix this.
|
// TODO: This is retarded, fix this.
|
||||||
if (currentBlockGroup.ParentGroup != null)
|
if (currentBlockGroup.ParentGroup != null)
|
||||||
{
|
{
|
||||||
while (currentBlockGroup.ParentGroup.ParentGroup != null)
|
while (currentBlockGroup.ParentGroup.ParentGroup != null)
|
||||||
{
|
{
|
||||||
outputString = currentBlockGroup.ParentGroup.GroupName + " - " + outputString;
|
outputString = (currentBlockGroup.ParentGroup.Advanced ? "~" : string.Empty) + currentBlockGroup.ParentGroup.GroupName + " - " + outputString;
|
||||||
currentBlockGroup = currentBlockGroup.ParentGroup;
|
currentBlockGroup = currentBlockGroup.ParentGroup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ using System.Linq;
|
||||||
using Filtration.ObjectModel;
|
using Filtration.ObjectModel;
|
||||||
using Filtration.ObjectModel.BlockItemTypes;
|
using Filtration.ObjectModel.BlockItemTypes;
|
||||||
using Filtration.ObjectModel.Enums;
|
using Filtration.ObjectModel.Enums;
|
||||||
|
using Filtration.Properties;
|
||||||
using Filtration.Translators;
|
using Filtration.Translators;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
|
@ -19,6 +20,7 @@ namespace Filtration.Tests.Translators
|
||||||
public void ItemFilterScriptTranslatorTestSetup()
|
public void ItemFilterScriptTranslatorTestSetup()
|
||||||
{
|
{
|
||||||
_testUtility = new ItemFilterScriptTranslatorTestUtility();
|
_testUtility = new ItemFilterScriptTranslatorTestUtility();
|
||||||
|
Settings.Default.Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -99,6 +101,43 @@ namespace Filtration.Tests.Translators
|
||||||
_testUtility.MockItemFilterBlockTranslator.Verify();
|
_testUtility.MockItemFilterBlockTranslator.Verify();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateItemFilterScriptToString_ExtraLineBetweenBlocksSettingFalse_ReturnsCorrectOutput()
|
||||||
|
{
|
||||||
|
Settings.Default.ExtraLineBetweenBlocks = false;
|
||||||
|
|
||||||
|
var script = new ItemFilterScript();
|
||||||
|
var block1 = new ItemFilterBlock { Description = "Test Filter 1" };
|
||||||
|
block1.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 5));
|
||||||
|
|
||||||
|
var block2 = new ItemFilterBlock();
|
||||||
|
block2.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 15));
|
||||||
|
block2.BlockItems.Add(new FontSizeBlockItem(7));
|
||||||
|
block2.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3));
|
||||||
|
|
||||||
|
script.ItemFilterBlocks.Add(block1);
|
||||||
|
script.ItemFilterBlocks.Add(block2);
|
||||||
|
|
||||||
|
var expectedOutput = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine +
|
||||||
|
"# Test Filter 1" + Environment.NewLine +
|
||||||
|
"Show" + Environment.NewLine +
|
||||||
|
" ItemLevel > 5" + Environment.NewLine +
|
||||||
|
"Show" + Environment.NewLine +
|
||||||
|
" Quality < 15" + Environment.NewLine +
|
||||||
|
" Width = 3" + Environment.NewLine +
|
||||||
|
" SetFontSize 7" + Environment.NewLine;
|
||||||
|
|
||||||
|
var mockBlockGroupHierarchyBuilder = new Mock<IBlockGroupHierarchyBuilder>();
|
||||||
|
var blockTranslator = new ItemFilterBlockTranslator(mockBlockGroupHierarchyBuilder.Object);
|
||||||
|
var translator = new ItemFilterScriptTranslator(blockTranslator, mockBlockGroupHierarchyBuilder.Object);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = translator.TranslateItemFilterScriptToString(script);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.AreEqual(expectedOutput, result);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateItemFilterScriptToString_FullScript_ReturnsCorrectOutput()
|
public void TranslateItemFilterScriptToString_FullScript_ReturnsCorrectOutput()
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,7 @@ using System.Linq;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using Castle.Core.Internal;
|
using Castle.Core.Internal;
|
||||||
using Filtration.ObjectModel;
|
using Filtration.ObjectModel;
|
||||||
|
using Filtration.Properties;
|
||||||
using Filtration.Utilities;
|
using Filtration.Utilities;
|
||||||
|
|
||||||
namespace Filtration.Translators
|
namespace Filtration.Translators
|
||||||
|
@ -111,7 +112,12 @@ namespace Filtration.Translators
|
||||||
// ReSharper disable once LoopCanBeConvertedToQuery
|
// ReSharper disable once LoopCanBeConvertedToQuery
|
||||||
foreach (var block in script.ItemFilterBlocks)
|
foreach (var block in script.ItemFilterBlocks)
|
||||||
{
|
{
|
||||||
outputString += _blockTranslator.TranslateItemFilterBlockToString(block) + Environment.NewLine + Environment.NewLine;
|
outputString += _blockTranslator.TranslateItemFilterBlockToString(block) + Environment.NewLine;
|
||||||
|
|
||||||
|
if (Settings.Default.ExtraLineBetweenBlocks)
|
||||||
|
{
|
||||||
|
outputString += Environment.NewLine;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return outputString;
|
return outputString;
|
||||||
|
|
|
@ -89,10 +89,12 @@
|
||||||
<xcad:LayoutAnchorablePane Name="SectionBrowserPane" DockWidth="150" />
|
<xcad:LayoutAnchorablePane Name="SectionBrowserPane" DockWidth="150" />
|
||||||
<xcad:LayoutPanel Orientation="Vertical">
|
<xcad:LayoutPanel Orientation="Vertical">
|
||||||
<xcad:LayoutDocumentPane />
|
<xcad:LayoutDocumentPane />
|
||||||
<xcad:LayoutAnchorablePane Name="BlockOutputPreviewPane" DockHeight="100">
|
|
||||||
</xcad:LayoutAnchorablePane>
|
|
||||||
</xcad:LayoutPanel>
|
</xcad:LayoutPanel>
|
||||||
<xcad:LayoutAnchorablePane Name="BlockGroupBrowserPane" DockWidth="200" />
|
<xcad:LayoutAnchorablePaneGroup DockWidth="200" Orientation="Vertical">
|
||||||
|
<xcad:LayoutAnchorablePane Name="BlockGroupBrowserPane" />
|
||||||
|
<xcad:LayoutAnchorablePane Name="BlockOutputPreviewPane" />
|
||||||
|
</xcad:LayoutAnchorablePaneGroup>
|
||||||
</xcad:LayoutPanel>
|
</xcad:LayoutPanel>
|
||||||
</xcad:LayoutRoot>
|
</xcad:LayoutRoot>
|
||||||
</xcad:DockingManager>
|
</xcad:DockingManager>
|
||||||
|
|
|
@ -8,40 +8,41 @@
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=viewModels:SettingsWindowViewModel}"
|
d:DataContext="{d:DesignInstance Type=viewModels:SettingsWindowViewModel}"
|
||||||
Title="Options" Height="150" Width="500" IsMaxRestoreButtonEnabled="False">
|
Title="Options" Height="150" Width="500" IsMaxRestoreButtonEnabled="False">
|
||||||
<DockPanel Margin="10">
|
<Border BorderBrush="Black" BorderThickness="1">
|
||||||
<Grid DockPanel.Dock="Bottom">
|
<DockPanel Margin="10">
|
||||||
<Grid.RowDefinitions>
|
<Grid DockPanel.Dock="Bottom">
|
||||||
<RowDefinition Height="*" />
|
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Grid Grid.Row="0">
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="Auto" />
|
|
||||||
<ColumnDefinition Width="5" />
|
|
||||||
<ColumnDefinition></ColumnDefinition>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
<RowDefinition Height="5" />
|
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<TextBlock Grid.Row="0" Grid.Column="0">Default Filter Directory:</TextBlock>
|
<Grid Grid.Row="0">
|
||||||
<TextBox Grid.Row="0" Grid.Column="2" Text="{Binding DefaultFilterDirectory}" />
|
<Grid.ColumnDefinitions>
|
||||||
<TextBlock Grid.Row="2" Grid.Column="0">Add blank line between blocks when saving</TextBlock>
|
<ColumnDefinition Width="Auto" />
|
||||||
<CheckBox Grid.Row="2" Grid.Column="2" IsChecked="{Binding ExtraLineBetweenBlocks}" />
|
<ColumnDefinition Width="5" />
|
||||||
|
<ColumnDefinition></ColumnDefinition>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="5" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<TextBlock Grid.Row="0" Grid.Column="0">Default Filter Directory:</TextBlock>
|
||||||
|
<TextBox Grid.Row="0" Grid.Column="2" Text="{Binding DefaultFilterDirectory}" />
|
||||||
|
<TextBlock Grid.Row="2" Grid.Column="0">Add blank line between blocks when saving</TextBlock>
|
||||||
|
<CheckBox Grid.Row="2" Grid.Column="2" IsChecked="{Binding ExtraLineBetweenBlocks}" />
|
||||||
|
</Grid>
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Right">
|
||||||
|
<StackPanel.Resources>
|
||||||
|
<Style TargetType="{x:Type Button}">
|
||||||
|
<Setter Property="Width" Value="80" />
|
||||||
|
<Setter Property="Margin" Value="3" />
|
||||||
|
</Style>
|
||||||
|
</StackPanel.Resources>
|
||||||
|
<Button Command="{Binding SaveCommand}">OK</Button>
|
||||||
|
<Button Command="{Binding CancelCommand}">Cancel</Button>
|
||||||
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
<StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Right">
|
</DockPanel>
|
||||||
<StackPanel.Resources>
|
</Border>
|
||||||
<Style TargetType="{x:Type Button}">
|
|
||||||
<Setter Property="Width" Value="80" />
|
|
||||||
<Setter Property="Margin" Value="3" />
|
|
||||||
</Style>
|
|
||||||
</StackPanel.Resources>
|
|
||||||
<Button Command="{Binding SaveCommand}">OK</Button>
|
|
||||||
<Button Command="{Binding CancelCommand}">Cancel</Button>
|
|
||||||
</StackPanel>
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</DockPanel>
|
|
||||||
</controls:MetroWindow>
|
</controls:MetroWindow>
|
||||||
|
|
Loading…
Reference in New Issue