Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
251 changes: 209 additions & 42 deletions src/Files.App/UserControls/AddressToolbar.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,167 @@
<Setter Property="Width" Value="36" />
<Setter Property="Height" Value="32" />
</Style>

<Style x:Key="DefaultInfoBadgeStyle" TargetType="InfoBadge">
<Setter Property="MinHeight" Value="{ThemeResource InfoBadgeMinHeight}" />
<Setter Property="MinWidth" Value="{ThemeResource InfoBadgeMinWidth}" />
<Setter Property="MaxHeight" Value="{ThemeResource InfoBadgeMaxHeight}" />
<Setter Property="Background" Value="{ThemeResource InfoBadgeBackground}" />
<Setter Property="Foreground" Value="{ThemeResource InfoBadgeForeground}" />
<Setter Property="Padding" Value="{ThemeResource InfoBadgePadding}" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="InfoBadge">
<Grid
x:Name="RootGrid"
Padding="{TemplateBinding Padding}"
Background="{TemplateBinding Background}"
CornerRadius="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.InfoBadgeCornerRadius}">
<TextBlock
x:Name="ValueTextBlock"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="{ThemeResource InfoBadgeValueFontSize}"
Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value, Mode=OneWay}"
Visibility="Collapsed" />
<Viewbox
x:Name="IconPresenter"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Visibility="Collapsed">
<IconSourceElement IconSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IconSource, Mode=OneWay}" />
</Viewbox>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="DisplayKindStates">
<VisualState x:Name="Dot" />
<VisualState x:Name="Icon">
<VisualState.Setters>
<Setter Target="IconPresenter.Visibility" Value="Visible" />
<Setter Target="IconPresenter.Margin" Value="{ThemeResource IconInfoBadgeIconMargin}" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="FontIcon">
<VisualState.Setters>
<Setter Target="IconPresenter.Visibility" Value="Visible" />
<Setter Target="IconPresenter.Margin" Value="{ThemeResource IconInfoBadgeFontIconMargin}" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Value">
<VisualState.Setters>
<Setter Target="ValueTextBlock.Visibility" Value="Visible" />
<Setter Target="ValueTextBlock.Margin" Value="{ThemeResource ValueInfoBadgeTextMargin}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style
x:Key="AttentionDotInfoBadgeStyle"
BasedOn="{StaticResource DefaultInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="Background" Value="{ThemeResource SystemFillColorAttentionBrush}" />
</Style>
<Style
x:Key="AttentionValueInfoBadgeStyle"
BasedOn="{StaticResource AttentionDotInfoBadgeStyle}"
TargetType="InfoBadge" />
<Style
x:Key="AttentionIconInfoBadgeStyle"
BasedOn="{StaticResource AttentionDotInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="Padding" Value="0,4,0,2" />
<Setter Property="IconSource">
<Setter.Value>
<FontIconSource Glyph="&#xEA38;" />
</Setter.Value>
</Setter>
</Style>
<Style
x:Key="InformationalDotInfoBadgeStyle"
BasedOn="{StaticResource DefaultInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="Background" Value="{ThemeResource SystemFillColorSolidNeutralBrush}" />
</Style>
<Style
x:Key="InformationalValueInfoBadgeStyle"
BasedOn="{StaticResource InformationalDotInfoBadgeStyle}"
TargetType="InfoBadge" />
<Style
x:Key="InformationalIconInfoBadgeStyle"
BasedOn="{StaticResource InformationalDotInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="Padding" Value="0,4,0,2" />
<Setter Property="IconSource">
<Setter.Value>
<FontIconSource Glyph="&#xF13F;" />
</Setter.Value>
</Setter>
</Style>
<Style
x:Key="SuccessDotInfoBadgeStyle"
BasedOn="{StaticResource DefaultInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="Background" Value="{ThemeResource SystemFillColorSuccessBrush}" />
</Style>
<Style
x:Key="SuccessValueInfoBadgeStyle"
BasedOn="{StaticResource SuccessDotInfoBadgeStyle}"
TargetType="InfoBadge" />
<Style
x:Key="SuccessIconInfoBadgeStyle"
BasedOn="{StaticResource SuccessDotInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="IconSource">
<Setter.Value>
<SymbolIconSource Symbol="Accept" />
</Setter.Value>
</Setter>
</Style>
<Style
x:Key="CautionDotInfoBadgeStyle"
BasedOn="{StaticResource DefaultInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="Background" Value="{ThemeResource SystemFillColorCautionBrush}" />
</Style>
<Style
x:Key="CautionValueInfoBadgeStyle"
BasedOn="{StaticResource CautionDotInfoBadgeStyle}"
TargetType="InfoBadge" />
<Style
x:Key="CautionIconInfoBadgeStyle"
BasedOn="{StaticResource CautionDotInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="IconSource">
<Setter.Value>
<SymbolIconSource Symbol="Important" />
</Setter.Value>
</Setter>
</Style>
<Style
x:Key="CriticalDotInfoBadgeStyle"
BasedOn="{StaticResource DefaultInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="Background" Value="{ThemeResource SystemFillColorCriticalBrush}" />
</Style>
<Style
x:Key="CriticalValueInfoBadgeStyle"
BasedOn="{StaticResource CriticalDotInfoBadgeStyle}"
TargetType="InfoBadge" />
<Style
x:Key="CriticalIconInfoBadgeStyle"
BasedOn="{StaticResource CriticalDotInfoBadgeStyle}"
TargetType="InfoBadge">
<Setter Property="IconSource">
<Setter.Value>
<SymbolIconSource Symbol="Cancel" />
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Expand Down Expand Up @@ -200,49 +361,55 @@
<FontIcon FontSize="14" Glyph="{x:Bind ViewModel.SearchButtonGlyph, Mode=OneWay}" />
</Button>

<Button
x:Name="OngoingTasks"
Padding="0"
AccessKey="T"
AutomationProperties.Name="{helpers:ResourceString Name=OngoingTasks}"
Style="{StaticResource AddressToolbarButtonStyle}"
ToolTipService.ToolTip="{helpers:ResourceString Name=OngoingTasks}"
Visibility="{x:Bind OngoingTasksViewModel.AnyBannersPresent, Mode=OneWay}">
<Button.Content>
<Grid>
<FontIcon
x:Name="OngoingTasksFontIcon"
x:Load="{x:Bind OngoingTasksViewModel.AnyOperationsOngoing, Converter={StaticResource BoolNegationConverter}, Mode=OneWay}"
FontSize="16"
Glyph="&#xF16A;" />
<Grid Visibility="{x:Bind OngoingTasksViewModel.AnyBannersPresent, Mode=OneWay}">
<Button
x:Name="OngoingTasks"
Padding="0"
AccessKey="T"
AutomationProperties.Name="{helpers:ResourceString Name=OngoingTasks}"
Style="{StaticResource AddressToolbarButtonStyle}"
ToolTipService.ToolTip="{helpers:ResourceString Name=OngoingTasks}">
<Button.Content>
<Grid>
<FontIcon
x:Name="OngoingTasksFontIcon"
x:Load="{x:Bind OngoingTasksViewModel.AnyOperationsOngoing, Converter={StaticResource BoolNegationConverter}, Mode=OneWay}"
FontSize="16"
Glyph="&#xF16A;" />

<ProgressRing
x:Name="MedianOperationProgressRing"
Width="20"
Height="20"
HorizontalAlignment="Center"
VerticalAlignment="Center"
x:Load="{x:Bind OngoingTasksViewModel.AnyOperationsOngoing, Mode=OneWay}"
IsIndeterminate="False"
Value="{x:Bind OngoingTasksViewModel.MedianOperationProgressValue, Mode=OneWay}" />
</Grid>
</Button.Content>
<Button.Flyout>
<Flyout
contract8Present:ShouldConstrainToRootBounds="False"
AutomationProperties.Name="{helpers:ResourceString Name=OngoingTasks}"
Placement="Bottom">
<uc:OngoingTasksFlyout
x:Name="OngoingTasksControl"
Width="400"
MinHeight="300"
MaxHeight="500"
x:FieldModifier="public"
IsTabStop="True"
OngoingTasksViewModel="{x:Bind OngoingTasksViewModel}" />
</Flyout>
</Button.Flyout>
</Button>
<ProgressRing
x:Name="MedianOperationProgressRing"
Width="20"
Height="20"
HorizontalAlignment="Center"
VerticalAlignment="Center"
x:Load="{x:Bind OngoingTasksViewModel.AnyOperationsOngoing, Mode=OneWay}"
IsIndeterminate="False"
Value="{x:Bind OngoingTasksViewModel.MedianOperationProgressValue, Mode=OneWay}" />
</Grid>
</Button.Content>
<Button.Flyout>
<Flyout
contract8Present:ShouldConstrainToRootBounds="False"
AutomationProperties.Name="{helpers:ResourceString Name=OngoingTasks}"
Placement="Bottom">
<uc:OngoingTasksFlyout
x:Name="OngoingTasksControl"
Width="400"
MinHeight="300"
MaxHeight="500"
x:FieldModifier="public"
IsTabStop="True"
OngoingTasksViewModel="{x:Bind OngoingTasksViewModel}" />
</Flyout>
</Button.Flyout>
</Button>
<InfoBadge
x:Name="StatusInfoBadge"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Value="{x:Bind OngoingTasksViewModel.InfoBadgeValue, Mode=OneWay}" />
</Grid>

<!-- Install Update Notification -->
<Button
Expand Down