Skip to content

Commit f5a73dc

Browse files
authored
Merge pull request #911 from Garulf/change-icon-based-on-plugin
Plugin activation icon
2 parents f6d8d3e + 4baf205 commit f5a73dc

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

Flow.Launcher/MainWindow.xaml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,12 +190,25 @@
190190
</TextBox.ContextMenu>
191191
</TextBox>
192192
<Canvas Style="{DynamicResource SearchIconPosition}">
193+
<Image
194+
x:Name="PluginActivationIcon"
195+
Width="32"
196+
Height="32"
197+
Margin="0,0,0,0"
198+
HorizontalAlignment="Center"
199+
VerticalAlignment="Center"
200+
Panel.ZIndex="2"
201+
RenderOptions.BitmapScalingMode="HighQuality"
202+
Source="{Binding PluginIconPath}"
203+
Stretch="Uniform"
204+
Style="{DynamicResource PluginActivationIcon}" />
193205
<Path
194206
Name="SearchIcon"
195207
Margin="0"
196208
Data="{DynamicResource SearchIconImg}"
197209
Stretch="Fill"
198-
Style="{DynamicResource SearchIconStyle}" />
210+
Style="{DynamicResource SearchIconStyle}"
211+
Visibility="{Binding SearchIconVisibility}" />
199212
</Canvas>
200213
</Grid>
201214

Flow.Launcher/ViewModel/MainViewModel.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,8 +391,12 @@ private ResultsViewModel SelectedResults
391391
// because it is more accurate and reliable representation than using Visibility as a condition check
392392
public bool MainWindowVisibilityStatus { get; set; } = true;
393393

394+
public Visibility SearchIconVisibility { get; set; }
395+
394396
public double MainWindowWidth => _settings.WindowSize;
395397

398+
public string PluginIconPath { get; set; } = null;
399+
396400
public ICommand EscCommand { get; set; }
397401
public ICommand SelectNextItemCommand { get; set; }
398402
public ICommand SelectPrevItemCommand { get; set; }
@@ -526,6 +530,8 @@ private async void QueryResults()
526530
{
527531
Results.Clear();
528532
Results.Visbility = Visibility.Collapsed;
533+
PluginIconPath = null;
534+
SearchIconVisibility = Visibility.Visible;
529535
return;
530536
}
531537

@@ -554,6 +560,18 @@ private async void QueryResults()
554560

555561
var plugins = PluginManager.ValidPluginsForQuery(query);
556562

563+
if (plugins.Count == 1)
564+
{
565+
PluginIconPath = plugins.Single().Metadata.IcoPath;
566+
SearchIconVisibility = Visibility.Hidden;
567+
}
568+
else
569+
{
570+
PluginIconPath = null;
571+
SearchIconVisibility = Visibility.Visible;
572+
}
573+
574+
557575
if (query.ActionKeyword == Plugin.Query.GlobalPluginWildcardSign)
558576
{
559577
// Wait 45 millisecond for query change in global query

0 commit comments

Comments
 (0)