Skip to content

Commit 98d3289

Browse files
committed
Add theme preview
1 parent 1e2a4e0 commit 98d3289

File tree

2 files changed

+35
-22
lines changed

2 files changed

+35
-22
lines changed

Flow.Launcher.Plugin.OneNote/UI/ViewModels/IconThemeViewModel.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,29 @@ public class IconThemeViewModel
99
private IconThemeViewModel(IconTheme iconTheme, PluginInitContext context)
1010
{
1111
IconTheme = iconTheme;
12-
string iconThemeString;
1312
if (iconTheme == IconTheme.System)
1413
{
15-
//TODO: Implement this
16-
iconThemeString = Enum.GetName(IconTheme.Light).ToLower();
17-
//ThemeManager.Current.ActualApplicationTheme
18-
Tooltip = "Match the system theme";
14+
Name = "FL Default";
15+
ImageUri = GetUri(IconTheme.Light.ToString(), context);
16+
ImageUri2 = GetUri(IconTheme.Dark.ToString(), context);
17+
Tooltip = "Matches Flow Launcher's app theme";
1918
}
2019
else
2120
{
22-
iconThemeString = Enum.GetName(iconTheme).ToLower();
21+
Name = Enum.GetName(iconTheme);
22+
ImageUri = GetUri(Name, context);
2323
}
24-
ImageUri = new Uri(
25-
$"{context.CurrentPluginMetadata.PluginDirectory}/{IconConstants.ImagesDirectory}{IconConstants.Notebook}.{iconThemeString}.png");
2624
}
2725

26+
private static Uri GetUri(string theme, PluginInitContext context) =>
27+
new($"{context.CurrentPluginMetadata.PluginDirectory}/{IconConstants.ImagesDirectory}{IconConstants.Notebook}.{theme.ToLower()}.png");
28+
29+
public string Name { get; }
2830
public IconTheme IconTheme { get; }
2931
public Uri ImageUri { get; }
32+
public Uri ImageUri2 { get; }
3033
public string Tooltip { get; }
31-
34+
3235
public static IconThemeViewModel[] GetIconThemeViewModels(PluginInitContext context) =>
3336
Enum.GetValues<IconTheme>().Select(iconTheme => new IconThemeViewModel(iconTheme, context)).ToArray();
3437
}

Flow.Launcher.Plugin.OneNote/UI/Views/SettingsView.xaml

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@
110110
<Border Style="{DynamicResource SettingGroupBox}">
111111
<ItemsControl Style="{StaticResource SettingGrid}">
112112
<StackPanel Style="{StaticResource TextPanel}">
113-
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="Icon theme" />
113+
<TextBlock Style="{DynamicResource SettingTitleLabel}" Text="Icon color theme" />
114114
</StackPanel>
115115
<ComboBox
116116
Grid.Column="2"
117-
Width="100"
117+
Width="130"
118118
Margin="10,0,18,0"
119119
HorizontalContentAlignment="Center"
120120
ItemsSource="{Binding IconThemes}"
@@ -123,22 +123,32 @@
123123
<ComboBox.ItemTemplate>
124124
<DataTemplate DataType="{x:Type vm:IconThemeViewModel}">
125125
<StackPanel Orientation="Horizontal" ToolTip="{Binding Tooltip}">
126-
<Image
127-
x:Name="ImageIcon"
128-
Width="32"
129-
UseLayoutRounding="True"
130-
SnapsToDevicePixels="True"
131-
Height="32"
132-
Source="{Binding ImageUri}" />
126+
<Grid x:Name="GridImages">
127+
<Image
128+
Width="32"
129+
UseLayoutRounding="True"
130+
SnapsToDevicePixels="True"
131+
Height="32"
132+
Source="{Binding ImageUri}" />
133+
<Image
134+
Width="32"
135+
UseLayoutRounding="True"
136+
SnapsToDevicePixels="True"
137+
Height="32"
138+
Source="{Binding ImageUri2}">
139+
<Image.Clip>
140+
<RectangleGeometry Rect="14,0,18,32"></RectangleGeometry>
141+
</Image.Clip>
142+
</Image>
143+
</Grid>
133144
<TextBlock
134-
x:Name="TextBlockIconTheme"
135145
Margin="8,0,0,0"
136146
VerticalAlignment="Center"
137-
Text="{Binding IconTheme}" />
147+
Text="{Binding Name}" />
138148
</StackPanel>
139149
<DataTemplate.Triggers>
140150
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ComboBoxItem}}" Value="{x:Null}">
141-
<Setter TargetName="ImageIcon" Property="Visibility" Value="Collapsed" />
151+
<Setter TargetName="GridImages" Property="Visibility" Value="Collapsed" />
142152
</DataTrigger>
143153
</DataTemplate.Triggers>
144154
</DataTemplate>
@@ -158,7 +168,7 @@
158168
</StackPanel>
159169
<ComboBox
160170
Grid.Column="2"
161-
Width="100"
171+
Width="130"
162172
Margin="10,0,18,0"
163173
HorizontalContentAlignment="Center"
164174
ItemsSource="{Binding Source={StaticResource DefaultRecentCountOptions}}"

0 commit comments

Comments
 (0)