diff --git a/Flow.Launcher.Core/Resource/Theme.cs b/Flow.Launcher.Core/Resource/Theme.cs
index 96338cf6a..61f0b18e0 100644
--- a/Flow.Launcher.Core/Resource/Theme.cs
+++ b/Flow.Launcher.Core/Resource/Theme.cs
@@ -176,8 +176,6 @@ namespace Flow.Launcher.Core.Resource
}
if (dict["ItemTitleStyle"] is Style resultItemStyle &&
- dict["ItemSubTitleStyle"] is Style resultSubItemStyle &&
- dict["ItemSubTitleSelectedStyle"] is Style resultSubItemSelectedStyle &&
dict["ItemTitleSelectedStyle"] is Style resultItemSelectedStyle &&
dict["ItemHotkeyStyle"] is Style resultHotkeyItemStyle &&
dict["ItemHotkeySelectedStyle"] is Style resultHotkeyItemSelectedStyle)
@@ -189,9 +187,25 @@ namespace Flow.Launcher.Core.Resource
Setter[] setters = { fontFamily, fontStyle, fontWeight, fontStretch };
Array.ForEach(
- new[] { resultItemStyle, resultSubItemStyle, resultItemSelectedStyle, resultSubItemSelectedStyle, resultHotkeyItemStyle, resultHotkeyItemSelectedStyle }, o
+ new[] { resultItemStyle, resultItemSelectedStyle, resultHotkeyItemStyle, resultHotkeyItemSelectedStyle }, o
=> Array.ForEach(setters, p => o.Setters.Add(p)));
}
+
+ if (
+ dict["ItemSubTitleStyle"] is Style resultSubItemStyle &&
+ dict["ItemSubTitleSelectedStyle"] is Style resultSubItemSelectedStyle)
+ {
+ Setter fontFamily = new Setter(TextBlock.FontFamilyProperty, new FontFamily(Settings.ResultSubFont));
+ Setter fontStyle = new Setter(TextBlock.FontStyleProperty, FontHelper.GetFontStyleFromInvariantStringOrNormal(Settings.ResultSubFontStyle));
+ Setter fontWeight = new Setter(TextBlock.FontWeightProperty, FontHelper.GetFontWeightFromInvariantStringOrNormal(Settings.ResultSubFontWeight));
+ Setter fontStretch = new Setter(TextBlock.FontStretchProperty, FontHelper.GetFontStretchFromInvariantStringOrNormal(Settings.ResultSubFontStretch));
+
+ Setter[] setters = { fontFamily, fontStyle, fontWeight, fontStretch };
+ Array.ForEach(
+ new[] { resultSubItemStyle,resultSubItemSelectedStyle}, o
+ => Array.ForEach(setters, p => o.Setters.Add(p)));
+ }
+
/* Ignore Theme Window Width and use setting */
var windowStyle = dict["WindowStyle"] as Style;
var width = Settings.WindowSize;
diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
index 75b8a5a8a..2ff230b43 100644
--- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
+++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
@@ -69,6 +69,10 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public string ResultFontStyle { get; set; }
public string ResultFontWeight { get; set; }
public string ResultFontStretch { get; set; }
+ public string ResultSubFont { get; set; } = FontFamily.GenericSansSerif.Name;
+ public string ResultSubFontStyle { get; set; }
+ public string ResultSubFontWeight { get; set; }
+ public string ResultSubFontStretch { get; set; }
public bool UseGlyphIcons { get; set; } = true;
public bool UseAnimation { get; set; } = true;
public bool UseSound { get; set; } = true;
diff --git a/Flow.Launcher/MainWindow.xaml b/Flow.Launcher/MainWindow.xaml
index 8398584d2..21fb0d886 100644
--- a/Flow.Launcher/MainWindow.xaml
+++ b/Flow.Launcher/MainWindow.xaml
@@ -38,7 +38,7 @@
mc:Ignorable="d">
-
+
@@ -213,6 +213,7 @@
@@ -228,6 +229,7 @@
Height="{Binding MainWindowHeight, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
AllowDrop="True"
AutomationProperties.Name="{Binding Results.SelectedItem.Result.Title}"
+ FontSize="{Binding QueryBoxFontSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
InputMethod.PreferredImeConversionMode="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEConversionModeConverter}}"
InputMethod.PreferredImeState="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEStateConverter}}"
PreviewDragOver="OnPreviewDragOver"
diff --git a/Flow.Launcher/ResultListBox.xaml b/Flow.Launcher/ResultListBox.xaml
index d8263f540..68d614e5b 100644
--- a/Flow.Launcher/ResultListBox.xaml
+++ b/Flow.Launcher/ResultListBox.xaml
@@ -173,8 +173,10 @@
+
diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml
index 119268d6b..86d74ebb9 100644
--- a/Flow.Launcher/SettingWindow.xaml
+++ b/Flow.Launcher/SettingWindow.xaml
@@ -1919,87 +1919,302 @@
TextAlignment="left" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
index fe1ea4e7b..d85d50e6f 100644
--- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
+++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs
@@ -49,6 +49,9 @@ namespace Flow.Launcher.ViewModel
case nameof(Settings.WindowSize):
OnPropertyChanged(nameof(WindowWidthSize));
break;
+ case nameof(Settings.WindowHeightSize):
+ OnPropertyChanged(nameof(WindowHeightSize));
+ break;
case nameof(Settings.UseDate):
case nameof(Settings.DateFormat):
OnPropertyChanged(nameof(DateText));
@@ -450,6 +453,34 @@ namespace Flow.Launcher.ViewModel
}
}
+ public double WindowHeightSize
+ {
+ get => Settings.WindowHeightSize;
+ set => Settings.WindowHeightSize = value;
+ }
+
+ public double ItemHeightSize
+ {
+ get => Settings.ItemHeightSize;
+ set => Settings.ItemHeightSize = value;
+ }
+
+ public double queryBoxFontSize
+ {
+ get => Settings.QueryBoxFontSize;
+ set => Settings.QueryBoxFontSize = value;
+ }
+ public double resultItemFontSize
+ {
+ get => Settings.ResultItemFontSize;
+ set => Settings.ResultItemFontSize = value;
+ }
+
+ public double resultSubItemFontSize
+ {
+ get => Settings.ResultSubItemFontSize;
+ set => Settings.ResultSubItemFontSize = value;
+ }
public class ColorScheme
{
public string Display { get; set; }
@@ -838,6 +869,51 @@ namespace Flow.Launcher.ViewModel
}
}
+ public FontFamily SelectedResultSubFont
+ {
+ get
+ {
+ if (Fonts.SystemFontFamilies.Count(o =>
+ o.FamilyNames.Values != null &&
+ o.FamilyNames.Values.Contains(Settings.ResultSubFont)) > 0)
+ {
+ var font = new FontFamily(Settings.ResultSubFont);
+ return font;
+ }
+ else
+ {
+ var font = new FontFamily("Segoe UI");
+ return font;
+ }
+ }
+ set
+ {
+ Settings.ResultSubFont = value.ToString();
+ ThemeManager.Instance.ChangeTheme(Settings.Theme);
+ }
+ }
+
+ public FamilyTypeface SelectedResultSubFontFaces
+ {
+ get
+ {
+ var typeface = SyntaxSugars.CallOrRescueDefault(
+ () => SelectedResultSubFont.ConvertFromInvariantStringsOrNormal(
+ Settings.ResultSubFontStyle,
+ Settings.ResultSubFontWeight,
+ Settings.ResultSubFontStretch
+ ));
+ return typeface;
+ }
+ set
+ {
+ Settings.ResultSubFontStretch = value.Stretch.ToString();
+ Settings.ResultSubFontWeight = value.Weight.ToString();
+ Settings.ResultSubFontStyle = value.Style.ToString();
+ ThemeManager.Instance.ChangeTheme(Settings.Theme);
+ }
+ }
+
public string ThemeImage => Constant.QueryTextBoxIconImagePath;
#endregion