Skip to content

Commit 4d9dd4c

Browse files
committed
Add "Audio button color" option
Add "Audio button font size" option. Setting it to 0 will hide the audio button. Add "Mining button color" option Add "Mining button font size" option. Setting it to 0 will hide the mining button.
1 parent be5eef8 commit 4d9dd4c

File tree

3 files changed

+60
-9
lines changed

3 files changed

+60
-9
lines changed

JL.Windows/ConfigManager.cs

+22-3
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ internal sealed class ConfigManager
125125
public double DeconjugationInfoFontSize { get; set; } = 17;
126126
public Brush DictTypeColor { get; private set; } = Brushes.LightBlue;
127127
public double DictTypeFontSize { get; set; } = 15;
128+
public Brush AudioButtonColor { get; private set; } = Brushes.White;
129+
public double AudioButtonFontSize { get; set; } = 12;
130+
public Brush MiningButtonColor { get; private set; } = Brushes.White;
131+
public double MiningButtonFontSize { get; set; } = 12;
128132
public Brush SeparatorColor { get; private set; } = Brushes.White;
129133
public bool HideDictTabsWithNoResults { get; private set; } = true;
130134
public bool AutoHidePopupIfMouseIsNotOverIt { get; private set; } // = false;
@@ -427,6 +431,8 @@ public void ApplyPreferences(SqliteConnection connection)
427431
FrequencyFontSize = ConfigDBManager.GetNumberWithDecimalPointFromConfig(connection, FrequencyFontSize, nameof(FrequencyFontSize), double.TryParse);
428432
DeconjugationInfoFontSize = ConfigDBManager.GetNumberWithDecimalPointFromConfig(connection, DeconjugationInfoFontSize, nameof(DeconjugationInfoFontSize), double.TryParse);
429433
DictTypeFontSize = ConfigDBManager.GetNumberWithDecimalPointFromConfig(connection, DictTypeFontSize, nameof(DictTypeFontSize), double.TryParse);
434+
AudioButtonFontSize = ConfigDBManager.GetNumberWithDecimalPointFromConfig(connection, AudioButtonFontSize, nameof(AudioButtonFontSize), double.TryParse);
435+
MiningButtonFontSize = ConfigDBManager.GetNumberWithDecimalPointFromConfig(connection, MiningButtonFontSize, nameof(MiningButtonFontSize), double.TryParse);
430436
MaxDelayBetweenCopiesForMergingMatchingSequentialTextsInMilliseconds = ConfigDBManager.GetNumberWithDecimalPointFromConfig(connection, MaxDelayBetweenCopiesForMergingMatchingSequentialTextsInMilliseconds, nameof(MaxDelayBetweenCopiesForMergingMatchingSequentialTextsInMilliseconds), double.TryParse);
431437
MaxNumResultsNotInMiningMode = ConfigDBManager.GetValueFromConfig(connection, MaxNumResultsNotInMiningMode, nameof(MaxNumResultsNotInMiningMode), int.TryParse);
432438

@@ -509,10 +515,10 @@ public void ApplyPreferences(SqliteConnection connection)
509515
DefinitionsColor = ConfigUtils.GetFrozenBrushFromConfig(connection, DefinitionsColor, nameof(DefinitionsColor));
510516
FrequencyColor = ConfigUtils.GetFrozenBrushFromConfig(connection, FrequencyColor, nameof(FrequencyColor));
511517
DeconjugationInfoColor = ConfigUtils.GetFrozenBrushFromConfig(connection, DeconjugationInfoColor, nameof(DeconjugationInfoColor));
512-
513518
SeparatorColor = ConfigUtils.GetFrozenBrushFromConfig(connection, SeparatorColor, nameof(SeparatorColor));
514-
515519
DictTypeColor = ConfigUtils.GetFrozenBrushFromConfig(connection, DictTypeColor, nameof(DictTypeColor));
520+
AudioButtonColor = ConfigUtils.GetFrozenBrushFromConfig(connection, AudioButtonColor, nameof(AudioButtonColor));
521+
MiningButtonColor = ConfigUtils.GetFrozenBrushFromConfig(connection, MiningButtonColor, nameof(MiningButtonColor));
516522

517523
HighlightColor = ConfigUtils.GetFrozenBrushFromConfig(connection, HighlightColor, nameof(HighlightColor));
518524
mainWindow.MainTextBox.SelectionBrush = HighlightColor;
@@ -859,7 +865,8 @@ public void LoadPreferenceWindow(PreferencesWindow preferenceWindow)
859865
WindowsUtils.SetButtonColor(preferenceWindow.PopupBackgroundColorButton, PopupBackgroundColor);
860866
WindowsUtils.SetButtonColor(preferenceWindow.SeparatorColorButton, SeparatorColor);
861867
WindowsUtils.SetButtonColor(preferenceWindow.DictTypeColorButton, DictTypeColor);
862-
868+
WindowsUtils.SetButtonColor(preferenceWindow.AudioButtonColorButton, AudioButtonColor);
869+
WindowsUtils.SetButtonColor(preferenceWindow.MiningButtonColorButton, MiningButtonColor);
863870

864871
CoreConfigManager coreConfigManager = CoreConfigManager.Instance;
865872
preferenceWindow.SearchUrlTextBox.Text = SearchUrl;
@@ -971,6 +978,8 @@ public void LoadPreferenceWindow(PreferencesWindow preferenceWindow)
971978
preferenceWindow.AlternativeSpellingsFontSizeNumericUpDown.Value = AlternativeSpellingsFontSize;
972979
preferenceWindow.DeconjugationInfoFontSizeNumericUpDown.Value = DeconjugationInfoFontSize;
973980
preferenceWindow.DictTypeFontSizeNumericUpDown.Value = DictTypeFontSize;
981+
preferenceWindow.AudioButtonFontSizeNumericUpDown.Value = AudioButtonFontSize;
982+
preferenceWindow.MiningButtonFontSizeNumericUpDown.Value = MiningButtonFontSize;
974983
preferenceWindow.MaxDelayBetweenCopiesForMergingMatchingSequentialTextsInMillisecondsNumericUpDown.Value = MaxDelayBetweenCopiesForMergingMatchingSequentialTextsInMilliseconds;
975984
preferenceWindow.TextBoxCustomLineHeightNumericUpDown.Value = TextBoxCustomLineHeight;
976985
preferenceWindow.AutoHidePopupIfMouseIsNotOverItDelayInMillisecondsNumericUpDown.Value = AutoHidePopupIfMouseIsNotOverItDelayInMilliseconds;
@@ -1363,6 +1372,12 @@ public async Task SavePreferences(PreferencesWindow preferenceWindow)
13631372
ConfigDBManager.UpdateSetting(connection, nameof(DictTypeFontSize),
13641373
preferenceWindow.DictTypeFontSizeNumericUpDown.Value.ToString(CultureInfo.InvariantCulture));
13651374

1375+
ConfigDBManager.UpdateSetting(connection, nameof(AudioButtonFontSize),
1376+
preferenceWindow.AudioButtonFontSizeNumericUpDown.Value.ToString(CultureInfo.InvariantCulture));
1377+
1378+
ConfigDBManager.UpdateSetting(connection, nameof(MiningButtonFontSize),
1379+
preferenceWindow.MiningButtonFontSizeNumericUpDown.Value.ToString(CultureInfo.InvariantCulture));
1380+
13661381
ConfigDBManager.UpdateSetting(connection, nameof(MaxDelayBetweenCopiesForMergingMatchingSequentialTextsInMilliseconds),
13671382
preferenceWindow.MaxDelayBetweenCopiesForMergingMatchingSequentialTextsInMillisecondsNumericUpDown.Value.ToString(CultureInfo.InvariantCulture));
13681383

@@ -1373,6 +1388,10 @@ public async Task SavePreferences(PreferencesWindow preferenceWindow)
13731388

13741389
ConfigDBManager.UpdateSetting(connection, nameof(DictTypeColor), preferenceWindow.DictTypeColorButton.Tag.ToString()!);
13751390

1391+
ConfigDBManager.UpdateSetting(connection, nameof(AudioButtonColor), preferenceWindow.AudioButtonColorButton.Tag.ToString()!);
1392+
1393+
ConfigDBManager.UpdateSetting(connection, nameof(MiningButtonColor), preferenceWindow.MiningButtonColorButton.Tag.ToString()!);
1394+
13761395
ConfigDBManager.UpdateSetting(connection, nameof(PopupFocusOnLookup),
13771396
preferenceWindow.PopupFocusOnLookupCheckBox.IsChecked.ToString()!);
13781397

JL.Windows/GUI/PopupWindow.xaml.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -767,13 +767,13 @@ private StackPanel PrepareResultStackPanel(LookupResult result, int index, int r
767767
}
768768
}
769769

770-
if (MiningMode)
770+
if (MiningMode && configManager.AudioButtonFontSize > 0)
771771
{
772772
Button audioButton = new()
773773
{
774774
Name = "AudioButton",
775775
Content = "🔊",
776-
Foreground = configManager.DefinitionsColor,
776+
Foreground = configManager.AudioButtonColor,
777777
VerticalAlignment = VerticalAlignment.Top,
778778
// VerticalContentAlignment = VerticalAlignment.Top,
779779
Margin = new Thickness(3, 0, 0, 0),
@@ -783,7 +783,7 @@ private StackPanel PrepareResultStackPanel(LookupResult result, int index, int r
783783
Cursor = Cursors.Arrow,
784784
BorderThickness = new Thickness(0),
785785
Padding = new Thickness(0),
786-
FontSize = 12
786+
FontSize = configManager.AudioButtonFontSize
787787
};
788788

789789
audioButton.PreviewMouseUp += AudioButton_Click;
@@ -883,14 +883,14 @@ private StackPanel PrepareResultStackPanel(LookupResult result, int index, int r
883883
_ = top.Children.Add(dictTypeTextBlock);
884884
}
885885

886-
if (MiningMode)
886+
if (MiningMode && configManager.MiningButtonFontSize > 0)
887887
{
888888
Button miningButton = new()
889889
{
890890
Name = "MiningButton",
891891
Content = '➕',
892892
ToolTip = "Mine",
893-
Foreground = configManager.DefinitionsColor,
893+
Foreground = configManager.MiningButtonColor,
894894
VerticalAlignment = VerticalAlignment.Top,
895895
VerticalContentAlignment = VerticalAlignment.Top,
896896
Margin = new Thickness(3, 0, 0, 0),
@@ -900,7 +900,7 @@ private StackPanel PrepareResultStackPanel(LookupResult result, int index, int r
900900
Cursor = Cursors.Arrow,
901901
BorderThickness = new Thickness(0),
902902
Padding = new Thickness(0),
903-
FontSize = 12
903+
FontSize = configManager.MiningButtonFontSize
904904
};
905905

906906
miningButton.PreviewMouseUp += MiningButton_PreviewMouseUp;

JL.Windows/GUI/PreferencesWindow.xaml

+32
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,38 @@
10191019
HorizontalAlignment="Right" />
10201020
</DockPanel>
10211021

1022+
<DockPanel>
1023+
<TextBlock HorizontalAlignment="Left" Text="Audio button color"
1024+
Style="{StaticResource TextBlockDefault}" TextWrapping="Wrap" VerticalAlignment="Center" />
1025+
<Button x:Name="AudioButtonColorButton" HorizontalAlignment="Right"
1026+
Width="60" BorderThickness="5,5,5,5"
1027+
Height="32" BorderBrush="#FF707070" Click="ShowColorPicker" />
1028+
</DockPanel>
1029+
1030+
<DockPanel>
1031+
<TextBlock HorizontalAlignment="Left" Text="Audio button font size"
1032+
Style="{StaticResource TextBlockDefault}" TextWrapping="Wrap" VerticalAlignment="Center" />
1033+
<hc:NumericUpDown x:Name="AudioButtonFontSizeNumericUpDown" Maximum="100"
1034+
Minimum="0"
1035+
HorizontalAlignment="Right" />
1036+
</DockPanel>
1037+
1038+
<DockPanel>
1039+
<TextBlock HorizontalAlignment="Left" Text="Mining button color"
1040+
Style="{StaticResource TextBlockDefault}" TextWrapping="Wrap" VerticalAlignment="Center" />
1041+
<Button x:Name="MiningButtonColorButton" HorizontalAlignment="Right"
1042+
Width="60" BorderThickness="5,5,5,5"
1043+
Height="32" BorderBrush="#FF707070" Click="ShowColorPicker" />
1044+
</DockPanel>
1045+
1046+
<DockPanel>
1047+
<TextBlock HorizontalAlignment="Left" Text="Mining button font size"
1048+
Style="{StaticResource TextBlockDefault}" TextWrapping="Wrap" VerticalAlignment="Center" />
1049+
<hc:NumericUpDown x:Name="MiningButtonFontSizeNumericUpDown" Maximum="100"
1050+
Minimum="0"
1051+
HorizontalAlignment="Right" />
1052+
</DockPanel>
1053+
10221054
<DockPanel>
10231055
<TextBlock HorizontalAlignment="Left" Text="Separator Color"
10241056
Style="{StaticResource TextBlockDefault}" TextWrapping="Wrap" VerticalAlignment="Center" />

0 commit comments

Comments
 (0)