- Add Preview Toggle (F2 Key)

- Fix Seperate line for toggle
- Block preview when nothing result
This commit is contained in:
DB p 2022-09-02 14:35:25 +09:00
parent 766e13b0e7
commit e8ccd46589
4 changed files with 60 additions and 7 deletions

View file

@ -237,7 +237,7 @@
<Rectangle
Width="Auto"
HorizontalAlignment="Stretch"
Style="{DynamicResource SeparatorStyle}" />
Style="{DynamicResource SeparatorStyle}" Visibility="Visible" />
<Line
x:Name="ProgressBar"
Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
@ -256,7 +256,7 @@
<ColumnDefinition Width="*" />
<ColumnDefinition Width="0.7*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<StackPanel Grid.Column="0" x:Name="ResultArea">
<Border Style="{DynamicResource WindowRadius}">
<Border.Clip>
<MultiBinding Converter="{StaticResource BorderClipConverter}">
@ -303,8 +303,8 @@
</ContentControl>
</Border>
</StackPanel>
<Grid Grid.Column="1" DataContext="{Binding SelectedItem, ElementName=ResultListBox}" VerticalAlignment="Stretch" Visibility="Visible">
<Border BorderThickness="1 0 0 0" BorderBrush="#cecece" Background="Transparent" Margin="0 0 10 10">
<Grid x:Name="Preview" Style="{DynamicResource PreviewArea}" Grid.Column="1" DataContext="{Binding SelectedItem, ElementName=ResultListBox}" VerticalAlignment="Stretch" Visibility="Collapsed">
<Border BorderThickness="1 0 0 0" BorderBrush="#FFEAEAEA" Background="Transparent" Margin="0 0 10 10">
<Grid Margin="10 0 10 0" VerticalAlignment="Center" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>

View file

@ -1,4 +1,4 @@
using System;
using System;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Windows;
@ -531,12 +531,34 @@ namespace Flow.Launcher
}
}
break;
case Key.F2:
PreviewToggle();
e.Handled = true;
break;
default:
break;
}
}
public void PreviewToggle()
{
if (Preview.Visibility == Visibility.Collapsed)
{
ResultArea.SetValue(Grid.ColumnSpanProperty, 1);
//HotkeyArea.SetValue(Visibility, Visibility.Collapsed);
Preview.Visibility = Visibility.Visible;
}
else
{
ResultArea.SetValue(Grid.ColumnSpanProperty, 2);
//HotkeyArea.SetValue(Visibility, Visibility.Visible);
Preview.Visibility = Visibility.Collapsed;
}
}
private void MoveQueryTextToEnd()
{
// QueryTextBox seems to be update with a DispatcherPriority as low as ContextIdle.
@ -556,4 +578,4 @@ namespace Flow.Launcher
}
}
}
}
}

View file

@ -56,6 +56,7 @@
<StackPanel
Grid.Column="2"
Margin="0,0,10,0"
x:Name="HotkeyArea"
Visibility="{Binding ShowOpenResultHotkey}">
<TextBlock
x:Name="Hotkey"

View file

@ -239,7 +239,21 @@
</Setter.Value>
</Setter>
</Style>
<Style x:Key="BaseSeparatorStyle" TargetType="Rectangle" />
<Style x:Key="BaseSeparatorStyle" TargetType="Rectangle">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=ResultListBox, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=ContextMenu, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=History, Path=Visibility}" Value="Collapsed" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Visibility" Value="Collapsed" />
<Setter Property="Margin" Value="0" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="HighlightStyle">
<Setter Property="Inline.FontWeight" Value="Bold" />
</Style>
@ -268,6 +282,22 @@
<Setter Property="HorizontalAlignment" Value="Right" />
</Style>
<Style x:Key="PreviewArea" TargetType="{x:Type Grid}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=QueryTextBox, UpdateSourceTrigger=PropertyChanged, Path=Text.Length}" Value="0" />
<Condition Binding="{Binding ElementName=ResultListBox, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=ContextMenu, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=History, Path=Visibility}" Value="Collapsed" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Height" Value="0" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
</Style>
<!-- for classic themes -->
<Style x:Key="SearchIconStyle" TargetType="{x:Type Path}">
<Setter Property="Fill" Value="#555555" />