Merge Dev

This commit is contained in:
DB p 2024-05-25 09:54:35 +09:00
parent 68f34fa02a
commit 8d566d02fd
2 changed files with 390 additions and 105 deletions

View file

@ -64,6 +64,34 @@ public partial class SettingsPaneThemeViewModel : BaseModel
}
}
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 List<string> Themes =>
ThemeManager.Instance.LoadAvailableThemes().Select(Path.GetFileNameWithoutExtension).ToList();
@ -375,6 +403,50 @@ public partial class SettingsPaneThemeViewModel : BaseModel
}
}
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;
[RelayCommand]

View file

@ -24,7 +24,7 @@
</ResourceDictionary>
</ui:Page.Resources>
<ScrollViewer
Padding="6,0,24,0"
Padding="6 0 24 0"
CanContentScroll="True"
FontSize="14"
VirtualizingStackPanel.IsVirtualizing="True"
@ -32,7 +32,7 @@
<StackPanel>
<!-- Page title -->
<TextBlock
Margin="5,23,0,5"
Margin="5 23 0 5"
FontSize="30"
Style="{StaticResource PageTitle}"
Text="{DynamicResource appearance}"
@ -40,93 +40,306 @@
Visibility="Collapsed" />
<!-- Theme preview -->
<StackPanel
Height="350"
Margin="0"
<Border
Grid.Row="1"
Background="{Binding PreviewBackground}"
IsHitTestVisible="False">
<StackPanel
Margin="0,30,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<Border
Width="{Binding WindowWidthSize}"
Margin="0"
SnapsToDevicePixels="True"
Style="{DynamicResource WindowBorderStyle}"
UseLayoutRounding="True">
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.Clip>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<!-- Query TextBox -->
<TextBox
x:Name="QueryTextBox"
Grid.Row="0"
IsReadOnly="True"
Style="{DynamicResource QueryBoxStyle}"
Text="{DynamicResource hiThere}" />
<!-- Clock panel -->
<StackPanel
Grid.Row="0"
Style="{DynamicResource ClockPanel}"
Visibility="Visible">
<!-- Clock TextBox -->
<TextBlock
x:Name="ClockBox"
Style="{DynamicResource ClockBox}"
Text="{Binding ClockText}"
Visibility="{Binding Settings.UseClock, Converter={StaticResource BoolToVisibilityConverter}}" />
<!-- Date TextBox -->
<TextBlock
x:Name="DateBox"
Style="{DynamicResource DateBox}"
Text="{Binding DateText}"
Visibility="{Binding Settings.UseDate, Converter={StaticResource BoolToVisibilityConverter}}" />
CornerRadius="6">
<DockPanel LastChildFill="True">
<StackPanel
Width="Auto"
Background="Transparent"
DockPanel.Dock="Right"
Orientation="Horizontal">
<ToggleButton
x:Name="Editor"
Margin="8"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="Edit"
ToolTip="Show details" />
<!-- Theme Size Editor -->
<Border
Padding="0 0 0 0"
Background="{DynamicResource Color00B}"
BorderBrush="{DynamicResource Color03B}"
BorderThickness="1"
CornerRadius="0 5 5 0">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=Editor, Path=IsChecked}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<ScrollViewer
Height="400"
ScrollViewer.CanContentScroll="True"
VirtualizingStackPanel.IsVirtualizing="True"
VirtualizingStackPanel.ScrollUnit="Pixel">
<StackPanel>
<Slider
Name="WindowHeightValue"
Width="140"
Margin="8"
VerticalAlignment="Center"
ui:ControlHelper.Header="Search Bar Height"
AutoToolTipPlacement="TopLeft"
IsMoveToPointEnabled="True"
IsSnapToTickEnabled="True"
Maximum="60"
Minimum="20"
TickFrequency="2"
Value="{Binding WindowHeightSize, Mode=TwoWay}" />
<Separator
Width="Auto"
BorderThickness="1"
Style="{StaticResource SettingSeparatorStyle}" />
<Slider
Name="QueryBoxFontSize"
Width="140"
Margin="8 8 8 0"
VerticalAlignment="Center"
ui:ControlHelper.Header="Query Box Font"
AutoToolTipPlacement="TopLeft"
IsMoveToPointEnabled="True"
IsSnapToTickEnabled="True"
Maximum="{Binding ElementName=WindowHeightValue, Path=Value, UpdateSourceTrigger=PropertyChanged}"
Minimum="10"
TickFrequency="1"
Value="{Binding queryBoxFontSize, Mode=TwoWay}" />
<ComboBox
Width="150"
Margin="8 4 8 0"
HorizontalAlignment="Center"
VerticalAlignment="Top"
IsSynchronizedWithCurrentItem="False"
ItemsSource="{Binding Source={StaticResource SortedFonts}}"
SelectedItem="{Binding SelectedQueryBoxFont}" />
<ComboBox
Width="150"
Margin="8"
HorizontalAlignment="Center"
VerticalAlignment="Top"
ItemsSource="{Binding SelectedQueryBoxFont.FamilyTypefaces}"
SelectedItem="{Binding SelectedQueryBoxFontFaces}">
<ComboBox.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding AdjustedFaceNames}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Separator
Width="Auto"
BorderThickness="1"
Style="{StaticResource SettingSeparatorStyle}" />
<Slider
Name="ItemHeightValue"
Width="140"
Margin="8 8 8 0"
VerticalAlignment="Center"
ui:ControlHelper.Header="Item Height"
AutoToolTipPlacement="TopLeft"
IsMoveToPointEnabled="True"
IsSnapToTickEnabled="True"
Maximum="100"
Minimum="30"
TickFrequency="2"
Value="{Binding ItemHeightSize, Mode=TwoWay}" />
<Separator
Width="Auto"
BorderThickness="1"
Style="{StaticResource SettingSeparatorStyle}" />
<Slider
Name="resultItemFontSize"
Width="140"
Margin="8 8 8 0"
VerticalAlignment="Center"
ui:ControlHelper.Header="Item Title Font"
AutoToolTipPlacement="TopLeft"
IsMoveToPointEnabled="True"
IsSnapToTickEnabled="True"
Maximum="80"
Minimum="10"
TickFrequency="1"
Value="{Binding resultItemFontSize, Mode=TwoWay}" />
<ComboBox
Width="140"
Margin="8 4 8 0"
HorizontalAlignment="Center"
VerticalAlignment="Top"
IsSynchronizedWithCurrentItem="False"
ItemsSource="{Binding Source={StaticResource SortedFonts}}"
SelectedItem="{Binding SelectedResultFont}" />
<ComboBox
Width="140"
Margin="8 4 8 8"
HorizontalAlignment="Center"
VerticalAlignment="Top"
ItemsSource="{Binding SelectedResultFont.FamilyTypefaces}"
SelectedItem="{Binding SelectedResultFontFaces}">
<ComboBox.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding AdjustedFaceNames}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Separator
Width="Auto"
BorderThickness="1"
Style="{StaticResource SettingSeparatorStyle}" />
<Slider
Name="resultSubItemFontSize"
Width="140"
Margin="8 8 8 0"
VerticalAlignment="Center"
ui:ControlHelper.Header="Item Subtitle Font"
AutoToolTipPlacement="TopLeft"
IsMoveToPointEnabled="True"
IsSnapToTickEnabled="True"
Maximum="80"
Minimum="6"
TickFrequency="1"
Value="{Binding resultSubItemFontSize, Mode=TwoWay}" />
<ComboBox
Width="140"
Margin="8 4 8 0"
HorizontalAlignment="Center"
VerticalAlignment="Top"
IsSynchronizedWithCurrentItem="False"
ItemsSource="{Binding Source={StaticResource SortedFonts}}"
SelectedItem="{Binding SelectedResultSubFont}" />
<ComboBox
Width="140"
Margin="8 4 8 8"
HorizontalAlignment="Center"
VerticalAlignment="Top"
ItemsSource="{Binding SelectedResultSubFont.FamilyTypefaces}"
SelectedItem="{Binding SelectedResultSubFontFaces}">
<ComboBox.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding AdjustedFaceNames}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Value}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Separator
Width="Auto"
BorderThickness="1"
Style="{StaticResource SettingSeparatorStyle}" />
<Button
Width="140"
Margin="8"
HorizontalAlignment="Center">
Reset
</Button>
</StackPanel>
<Canvas Grid.Row="0" Style="{DynamicResource SearchIconPosition}">
<Path
Margin="0"
Data="{DynamicResource SearchIconImg}"
Stretch="Fill"
Style="{DynamicResource SearchIconStyle}" />
</Canvas>
<Rectangle
Grid.Row="1"
Width="Auto"
HorizontalAlignment="Stretch"
Style="{DynamicResource SeparatorStyle}"
Visibility="Visible" />
<flowlauncher:ResultListBox
x:Name="ResultListBox"
Grid.Row="2"
DataContext="{Binding PreviewResults, Mode=OneTime}"
Visibility="Visible" />
<Border x:Name="ContextMenu" Visibility="Collapsed" />
<Border x:Name="History" Visibility="Collapsed" />
</Grid>
</ScrollViewer>
</Border>
</Border>
</StackPanel>
</StackPanel>
</StackPanel>
<StackPanel VerticalAlignment="Center" DockPanel.Dock="Left">
<Border
Width="400"
Margin="40 30 0 30"
SnapsToDevicePixels="True"
Style="{DynamicResource WindowBorderStyle}"
UseLayoutRounding="True">
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Border.Clip>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Border Grid.Row="0">
<TextBox
x:Name="QueryTextBox"
Height="{Binding WindowHeightSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
FontSize="{Binding queryBoxFontSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsHitTestVisible="False"
IsReadOnly="True"
Style="{DynamicResource QueryBoxStyle}"
Text="{DynamicResource hiThere}" />
</Border>
<StackPanel
x:Name="ClockPanel"
IsHitTestVisible="False"
Style="{DynamicResource ClockPanel}"
Visibility="Visible">
<TextBlock
x:Name="ClockBox"
Style="{DynamicResource ClockBox}"
Text="{Binding ClockText}"
Visibility="{Binding Settings.UseClock, Converter={StaticResource BoolToVisibilityConverter}}" />
<TextBlock
x:Name="DateBox"
Style="{DynamicResource DateBox}"
Text="{Binding DateText}"
Visibility="{Binding Settings.UseDate, Converter={StaticResource BoolToVisibilityConverter}}" />
</StackPanel>
<Canvas Style="{DynamicResource SearchIconPosition}">
<Path
Margin="0"
Data="{DynamicResource SearchIconImg}"
Stretch="Fill"
Style="{DynamicResource SearchIconStyle}" />
</Canvas>
<Border Grid.Row="1" Margin="0 0 0 0">
<Rectangle
Width="Auto"
HorizontalAlignment="Stretch"
Style="{DynamicResource SeparatorStyle}"
Visibility="Visible" />
</Border>
<ContentControl Grid.Row="2">
<flowlauncher:ResultListBox
DataContext="{Binding PreviewResults, Mode=OneTime}"
IsHitTestVisible="False"
Visibility="Visible" />
</ContentControl>
</Grid>
</Border>
</Border>
</StackPanel>
</DockPanel>
</Border>
<!-- Drop shadow effect -->
<cc:Card
Title="{DynamicResource queryWindowShadowEffect}"
Margin="0,4,0,0"
Margin="0 4 0 0"
Icon="&#xeb91;"
Sub="{DynamicResource shadowEffectCPUUsage}">
<ui:ToggleSwitch
@ -143,7 +356,7 @@
<StackPanel Orientation="Horizontal">
<TextBlock
Width="Auto"
Margin="0,0,8,2"
Margin="0 0 8 2"
VerticalAlignment="Center"
Foreground="{DynamicResource Color05B}"
Text="{Binding WindowWidthSize}"
@ -163,7 +376,7 @@
<!-- Theme -->
<Border
Height="64"
Margin="0,8,0,0"
Margin="0 8 0 0"
CornerRadius="5 5 0 0"
Style="{DynamicResource SettingGroupBox}">
<ItemsControl Style="{StaticResource SettingGrid}">
@ -180,7 +393,7 @@
Margin="0"
Padding="0"
HorizontalAlignment="Stretch"
BorderThickness="1,0,1,1"
BorderThickness="1 0 1 1"
CornerRadius="0 0 5 5"
Style="{DynamicResource SettingGroupBox}">
<ListBox
@ -208,13 +421,13 @@
Padding="{TemplateBinding Padding}"
Background="{DynamicResource Color12B}"
BorderBrush="{DynamicResource Color03B}"
BorderThickness="1,1,1,0"
BorderThickness="1 1 1 0"
CornerRadius="4"
SnapsToDevicePixels="true">
<Border
x:Name="Bd2"
BorderBrush="{DynamicResource Color14B}"
BorderThickness="0,0,0,2"
BorderThickness="0 0 0 2"
CornerRadius="4">
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
@ -252,7 +465,7 @@
<TextBlock
x:Name="ThemeName"
Margin="0"
Padding="14,12"
Padding="14 12"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Focusable="True"
@ -279,7 +492,7 @@
<!-- Fonts and icons -->
<cc:CardGroup Margin="0,30,0,0">
<cc:CardGroup Margin="0 30 0 0">
<cc:Card
Title="{DynamicResource useGlyphUI}"
Icon="&#xf6b8;"
@ -299,7 +512,7 @@
SelectedItem="{Binding SelectedQueryBoxFont}" />
<ComboBox
Width="130"
Margin="10,0,0,0"
Margin="10 0 0 0"
ItemsSource="{Binding SelectedQueryBoxFont.FamilyTypefaces}"
SelectedItem="{Binding SelectedQueryBoxFontFaces}">
<ComboBox.ItemTemplate>
@ -326,7 +539,7 @@
SelectedItem="{Binding SelectedResultFont}" />
<ComboBox
Width="130"
Margin="10,0,0,0"
Margin="10 0 0 0"
ItemsSource="{Binding SelectedResultFont.FamilyTypefaces}"
SelectedItem="{Binding SelectedResultFontFaces}">
<ComboBox.ItemTemplate>
@ -346,7 +559,7 @@
</cc:CardGroup>
<!-- Time and date -->
<cc:CardGroup Margin="0,24,0,0">
<cc:CardGroup Margin="0 24 0 0">
<cc:Card Title="{DynamicResource Clock}" Icon="&#xec92;">
<StackPanel Orientation="Horizontal">
<TextBlock
@ -356,7 +569,7 @@
Text="{Binding ClockText}" />
<ComboBox
MinWidth="180"
Margin="10,0,18,0"
Margin="10 0 18 0"
VerticalAlignment="Center"
FontSize="14"
ItemsSource="{Binding TimeFormatList}"
@ -377,7 +590,7 @@
Text="{Binding DateText}" />
<ComboBox
MinWidth="180"
Margin="10,0,18,0"
Margin="10 0 18 0"
VerticalAlignment="Center"
FontSize="14"
ItemsSource="{Binding DateFormatList}"
@ -391,7 +604,7 @@
</cc:CardGroup>
<!-- Animation -->
<cc:CardGroup Margin="0,11,0,0">
<cc:CardGroup Margin="0 11 0 0">
<cc:Card
Title="{DynamicResource Animation}"
Icon="&#xedb5;"
@ -418,7 +631,7 @@
<TextBox
MinWidth="80"
Margin="18,0,0,0"
Margin="18 0 0 0"
Text="{Binding Settings.CustomAnimationLength}"
TextWrapping="NoWrap"
Visibility="{ext:VisibleWhen {Binding Settings.AnimationSpeed},
@ -428,7 +641,7 @@
</cc:CardGroup>
<!-- SFX -->
<cc:CardGroup Margin="0,11,0,0">
<cc:CardGroup Margin="0 11 0 0">
<cc:Card
Title="{DynamicResource SoundEffect}"
Icon="&#xe7f5;"
@ -446,7 +659,7 @@
Visibility="{Binding UseSound, Converter={StaticResource BoolToVisibilityConverter}}">
<StackPanel Orientation="Horizontal">
<TextBlock
Margin="0,0,8,0"
Margin="0 0 8 0"
VerticalAlignment="Center"
Text="{Binding SoundEffectVolume}" />
<Slider
@ -463,12 +676,12 @@
</cc:CardGroup>
<Border
Name="WMPWarning"
Padding="0,10"
Padding="0 10"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Background="{DynamicResource InfoBarWarningBG}"
BorderBrush="{DynamicResource Color03B}"
BorderThickness="0,1,0,0"
BorderThickness="0 1 0 0"
CornerRadius="5 5 5 5"
Visibility="{Binding ShowWMPWarning, Converter={StaticResource BoolToVisibilityConverter}}">
<Grid VerticalAlignment="Center">
@ -478,15 +691,15 @@
</Grid.ColumnDefinitions>
<ui:FontIcon
Grid.Column="0"
Margin="20,0,14,0"
Margin="20 0 14 0"
VerticalAlignment="Center"
FontSize="15"
Foreground="{DynamicResource InfoBarWarningIcon}"
Glyph="&#xf167;" />
<TextBlock
Grid.Column="1"
Margin="0,0,0,2"
Padding="0,0,8,0"
Margin="0 0 0 2"
Padding="0 0 8 0"
HorizontalAlignment="Left"
FontSize="13"
FontWeight="SemiBold"
@ -499,7 +712,7 @@
<!-- Settings color scheme -->
<cc:Card
Title="{DynamicResource ColorScheme}"
Margin="0,11,0,0"
Margin="0 11 0 0"
Icon="&#xe793;">
<ComboBox
MinWidth="180"
@ -521,7 +734,7 @@
<!-- How to create theme link -->
<cc:HyperLink
Margin="10,10,10,28"
Margin="10 10 10 28"
HorizontalAlignment="Right"
Text="{DynamicResource howToCreateTheme}"
Uri="{Binding LinkHowToCreateTheme}" />