Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 61 additions & 17 deletions WFInfo/Settings/ThemeAdjuster.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,20 @@
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="6*"/>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="3*" MaxWidth="400"/>
</Grid.ColumnDefinitions>
<Border>
<Image Grid.Column="0" Margin="0,0" x:Name="previewImage"></Image>
<Border Grid.Column="0" Padding="3">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="60"/>
</Grid.RowDefinitions>
<Image Margin="0,0" Grid.Row="0" x:Name="previewImage"></Image>
<TextBlock Margin="5" Grid.Row="1" TextWrapping="Wrap" Text="Adjust and apply filter(s) until item names are black. Try to reduce how much else is black, especially near the text"></TextBlock>
</Grid>
</Border>
<ScrollViewer Grid.Column="1">
<Border Padding="0">
<StackPanel>
<CheckBox Content="Primary HSL Filter"
ToolTip="Use(and reveal) primary filter based on HSL colour values" Margin="5,5"
Expand Down Expand Up @@ -449,39 +457,75 @@
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>


<StackPanel Grid.Column="1">
<Label MouseLeftButtonDown="ShowUnfiltered"
<Label MouseLeftButtonDown="ShowUnfiltered"
Grid.Column="1" Grid.Row="0"
Padding="5"
DockPanel.Dock="Right"
Content="Show Unfiltered"
ToolTip="Shows your test image in the preview area"
FontWeight="Regular"
Style="{StaticResource Label_Button}" />
<Label MouseLeftButtonDown="ApplyFilter"
Grid.Column="1" Grid.Row="1"
Padding="5"
DockPanel.Dock="Right"
Content="Apply Filter"
ToolTip="Applies the custom filter to your test image and displays it"
FontWeight="Regular"
Style="{StaticResource Label_Button}" />
<Label MouseLeftButtonDown="LoadLatest"
Grid.Column="0" Grid.Row="0"
Padding="5"
DockPanel.Dock="Right"
Content="Show Unfiltered"
Content="Load Last Use"
ToolTip="Loads test image from your last attempted activation of any scanning functionality"
FontWeight="Regular"
Style="{StaticResource Label_Button}" />
<Label MouseLeftButtonDown="ApplyFilter"
<Label MouseLeftButtonDown="LoadFromFile"
Grid.Column="0" Grid.Row="1"
Padding="5"
DockPanel.Dock="Right"
Content="Apply Filter"
Content="Load From File"
ToolTip="Choose a file to load as test image"
FontWeight="Regular"
Grid.Column="1"
Style="{StaticResource Label_Button}" />
</StackPanel>
<StackPanel Grid.Column="0">
<Label MouseLeftButtonDown="LoadLatest"
<TextBox x:Name="filterTextBox"
MinHeight="50"
ForceCursor="True" Cursor="IBeam"
VerticalContentAlignment="Top"
HorizontalContentAlignment="Left"
AcceptsReturn="True"
AcceptsTab="True"
Text=""
ToolTip="Field for importing/exporting custom filters. Used with the buttons below"
Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2"/>
<Label MouseLeftButtonDown="ImportFilterJson"
Grid.Column="0" Grid.Row="3"
Padding="5"
DockPanel.Dock="Right"
Content="Load Last Use"
Content="Import Filter"
ToolTip="Attempts to import filter data from the text box above"
FontWeight="Regular"
Style="{StaticResource Label_Button}" />
<Label MouseLeftButtonDown="LoadFromFile"
<Label MouseLeftButtonDown="ExportFilterJson"
Grid.Column="1" Grid.Row="3"
Padding="5"
DockPanel.Dock="Right"
Content="Load From File"
Content="Export Filter"
ToolTip="Exports your custom filter to the text box above"
FontWeight="Regular"
Style="{StaticResource Label_Button}" />
</StackPanel>
</Grid>
</StackPanel>
</StackPanel>
</Border>
</ScrollViewer>
</Grid>
</Grid>
Expand Down
121 changes: 121 additions & 0 deletions WFInfo/Settings/ThemeAdjuster.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ private void LoadLatest(object sender, RoutedEventArgs e)
if (image != null)
{
unfiltered = image;
Main.RunOnUIThread(() => { ShowUnfiltered(null, null); });
}

}
Expand Down Expand Up @@ -150,6 +151,7 @@ private void LoadFromFile(object sender, RoutedEventArgs e)
if (image != null)
{
unfiltered = image;
Main.RunOnUIThread(() => { ShowUnfiltered(null, null); });
}
});
}
Expand All @@ -160,6 +162,125 @@ private void LoadFromFile(object sender, RoutedEventArgs e)
}
}

private void ExportFilterJson(object sender, RoutedEventArgs e)
{
JObject exp = new JObject
{
{ "CF_usePrimaryHSL", _viewModel.CF_usePrimaryHSL },
{ "CF_pHueMax", _viewModel.CF_pHueMax },
{ "CF_pHueMin", _viewModel.CF_pHueMin },
{ "CF_pSatMax", _viewModel.CF_pSatMax },
{ "CF_pSatMin", _viewModel.CF_pSatMin },
{ "CF_pBrightMax", _viewModel.CF_pBrightMax },
{ "CF_pBrightMin", _viewModel.CF_pBrightMin },

{ "CF_usePrimaryRGB", _viewModel.CF_usePrimaryRGB },
{ "CF_pRMax", _viewModel.CF_pRMax },
{ "CF_pRMin", _viewModel.CF_pRMin },
{ "CF_pGMax", _viewModel.CF_pGMax },
{ "CF_pGMin", _viewModel.CF_pGMin },
{ "CF_pBMax", _viewModel.CF_pBMax },
{ "CF_pBMin", _viewModel.CF_pBMin },

{ "CF_useSecondaryHSL", _viewModel.CF_useSecondaryHSL },
{ "CF_sHueMax", _viewModel.CF_sHueMax },
{ "CF_sHueMin", _viewModel.CF_sHueMin },
{ "CF_sSatMax", _viewModel.CF_sSatMax },
{ "CF_sSatMin", _viewModel.CF_sSatMin },
{ "CF_sBrightMax", _viewModel.CF_sBrightMax },
{ "CF_sBrightMin", _viewModel.CF_sBrightMin },

{ "CF_useSecondaryRGB", _viewModel.CF_useSecondaryRGB },
{ "CF_sRMax", _viewModel.CF_sRMax },
{ "CF_sRMin", _viewModel.CF_sRMin },
{ "CF_sGMax", _viewModel.CF_sGMax },
{ "CF_sGMin", _viewModel.CF_sGMin },
{ "CF_sBMax", _viewModel.CF_sBMax },
{ "CF_sBMin", _viewModel.CF_sBMin }
};
filterTextBox.Text = JsonConvert.SerializeObject(exp, Formatting.None);
}

private void ImportFilterJson(object sender, RoutedEventArgs e)
{
string input = filterTextBox.Text;
try
{
//try to read all parameters to temporary variables
JObject json = JsonConvert.DeserializeObject<JObject>(input);
bool CF_usePrimaryHSL = json["CF_usePrimaryHSL"].ToObject<bool>();
float CF_pHueMax = json["CF_pHueMax"].ToObject<float>();
float CF_pHueMin = json["CF_pHueMin"].ToObject<float>();
float CF_pSatMax = json["CF_pSatMax"].ToObject<float>();
float CF_pSatMin = json["CF_pSatMin"].ToObject<float>();
float CF_pBrightMax = json["CF_pBrightMax"].ToObject<float>();
float CF_pBrightMin = json["CF_pBrightMin"].ToObject<float>();

bool CF_usePrimaryRGB = json["CF_usePrimaryRGB"].ToObject<bool>();
int CF_pRMax = json["CF_pRMax"].ToObject<int>();
int CF_pRMin = json["CF_pRMin"].ToObject<int>();
int CF_pGMax = json["CF_pGMax"].ToObject<int>();
int CF_pGMin = json["CF_pGMin"].ToObject<int>();
int CF_pBMax = json["CF_pBMax"].ToObject<int>();
int CF_pBMin = json["CF_pBMin"].ToObject<int>();

bool CF_useSecondaryHSL = json["CF_useSecondaryHSL"].ToObject<bool>();
float CF_sHueMax = json["CF_sHueMax"].ToObject<float>();
float CF_sHueMin = json["CF_sHueMin"].ToObject<float>();
float CF_sSatMax = json["CF_sSatMax"].ToObject<float>();
float CF_sSatMin = json["CF_sSatMin"].ToObject<float>();
float CF_sBrightMax = json["CF_sBrightMax"].ToObject<float>();
float CF_sBrightMin = json["CF_sBrightMin"].ToObject<float>();

bool CF_useSecondaryRGB = json["CF_useSecondaryRGB"].ToObject<bool>();
int CF_sRMax = json["CF_sRMax"].ToObject<int>();
int CF_sRMin = json["CF_sRMin"].ToObject<int>();
int CF_sGMax = json["CF_sGMax"].ToObject<int>();
int CF_sGMin = json["CF_sGMin"].ToObject<int>();
int CF_sBMax = json["CF_sBMax"].ToObject<int>();
int CF_sBMin = json["CF_sBMin"].ToObject<int>();


//all parameters read successfully, apply to actual settings
_viewModel.CF_usePrimaryHSL = CF_usePrimaryHSL;
_viewModel.CF_pHueMax = CF_pHueMax;
_viewModel.CF_pHueMin = CF_pHueMin;
_viewModel.CF_pSatMax = CF_pSatMax;
_viewModel.CF_pSatMin = CF_pSatMin;
_viewModel.CF_pBrightMax = CF_pBrightMax;
_viewModel.CF_pBrightMin = CF_pBrightMin;

_viewModel.CF_usePrimaryRGB = CF_usePrimaryRGB;
_viewModel.CF_pRMax = CF_pRMax;
_viewModel.CF_pRMin = CF_pRMin;
_viewModel.CF_pGMax = CF_pGMax;
_viewModel.CF_pGMin = CF_pGMin;
_viewModel.CF_pBMax = CF_pBMax;
_viewModel.CF_pBMin = CF_pBMin;

_viewModel.CF_useSecondaryHSL = CF_useSecondaryHSL;
_viewModel.CF_sHueMax = CF_sHueMax;
_viewModel.CF_sHueMin = CF_sHueMin;
_viewModel.CF_sSatMax = CF_sSatMax;
_viewModel.CF_sSatMin = CF_sSatMin;
_viewModel.CF_sBrightMax = CF_sBrightMax;
_viewModel.CF_sBrightMin = CF_sBrightMin;

_viewModel.CF_useSecondaryRGB = CF_useSecondaryRGB;
_viewModel.CF_sRMax = CF_sRMax;
_viewModel.CF_sRMin = CF_sRMin;
_viewModel.CF_sGMax = CF_sGMax;
_viewModel.CF_sGMin = CF_sGMin;
_viewModel.CF_sBMax = CF_sBMax;
_viewModel.CF_sBMin = CF_sBMin;
}
catch (Exception exc)
{
Main.AddLog("Custom Filter Import failed. Input: " + Environment.NewLine + input + Environment.NewLine + "Custom filter import error message: " + exc.Message);
Main.SpawnErrorPopup(DateTime.UtcNow);
}
}

private void Hide(object sender, RoutedEventArgs e)
{
if (unfiltered != null)
Expand Down
2 changes: 1 addition & 1 deletion WFInfo/Templates/Styles.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@
<SolidColorBrush x:Key="GlyphBrush" Color="#444" />
<SolidColorBrush x:Key="NormalBrush" Color="#888" />
<SolidColorBrush x:Key="NormalBorderBrush" Color="#888" />
<SolidColorBrush x:Key="HorizontalNormalBrush" Color="#FF686868" />
<SolidColorBrush x:Key="HorizontalNormalBrush" Color="#FF1E80D2" />
<SolidColorBrush x:Key="HorizontalNormalBorderBrush" Color="#888" />

<LinearGradientBrush x:Key="ListBoxBackgroundBrush" StartPoint="0,0" EndPoint="1,0.001">
Expand Down