Skip to content
Open
Show file tree
Hide file tree
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
Original file line number Diff line number Diff line change
@@ -1 +1 @@
cb1ca000ef2f03f1afc7bde9ed4fb2987669c89a58b63919e67574696091f60f
d0b49589cd4b66b73d4b547464c29f6ebaed438ff696562713396f96e0db9edc
20 changes: 15 additions & 5 deletions src/Files.App/Data/Contracts/IAppSettingsService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,20 @@ public interface IAppSettingsService : IBaseSettingsService, INotifyPropertyChan
/// </summary>
bool ShowBackgroundRunningNotification { get; set; }

/// <summary>
/// Gets or sets a value indicating whether or not to restore tabs on startup.
/// This is used when prompting users to restart after changing the app language.
/// </summary>
bool RestoreTabsOnStartup { get; set; }
/// <summary>
/// Gets or sets a value indicating whether or not to restore tabs on startup.
/// This is used when prompting users to restart after changing the app language.
/// </summary>
bool RestoreTabsOnStartup { get; set; }

/// <summary>
/// Gets or sets the width of the Status Center flyout.
/// </summary>
double StatusCenterWidth { get; set; }

/// <summary>
/// Gets or sets the height of the Status Center flyout.
/// </summary>
double StatusCenterHeight { get; set; }
}
}
22 changes: 17 additions & 5 deletions src/Files.App/Services/Settings/AppSettingsService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,23 @@ public bool ShowBackgroundRunningNotification
set => Set(value);
}

public bool RestoreTabsOnStartup
{
get => Get(false);
set => Set(value);
}
public bool RestoreTabsOnStartup
{
get => Get(false);
set => Set(value);
}

public double StatusCenterWidth
{
get => Math.Max(300d, Math.Min(600d, Get(400d)));
set => Set(Math.Max(300d, Math.Min(600d, value)));
}

public double StatusCenterHeight
{
get => Math.Max(200d, Math.Min(800d, Get(500d)));
set => Set(Math.Max(200d, Math.Min(800d, value)));
}

protected override void RaiseOnSettingChangedEvent(object sender, SettingChangedEventArgs e)
{
Expand Down
9 changes: 6 additions & 3 deletions src/Files.App/UserControls/NavigationToolbar.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -456,14 +456,17 @@
<Style TargetType="FlyoutPresenter">
<Setter Property="Padding" Value="0" />
<Setter Property="CornerRadius" Value="{StaticResource OverlayCornerRadius}" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Hidden" />
<Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollMode" Value="Enabled" />
<Setter Property="MaxWidth" Value="600" />
<Setter Property="MinWidth" Value="300" />
</Style>
</Flyout.FlyoutPresenterStyle>

<ucs:StatusCenter
x:Name="OngoingTasksControl"
Width="400"
MinHeight="120"
MaxHeight="500"
x:FieldModifier="public"
IsTabStop="True" />
</Flyout>
Expand Down
3 changes: 3 additions & 0 deletions src/Files.App/UserControls/NavigationToolbar.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ public sealed partial class NavigationToolbar : UserControl
// Dependency injections

private readonly IUserSettingsService userSettingsService = Ioc.Default.GetRequiredService<IUserSettingsService>();

// Public properties for XAML binding
public IUserSettingsService UserSettingsService => userSettingsService;
private readonly MainPageViewModel MainPageViewModel = Ioc.Default.GetRequiredService<MainPageViewModel>();
private readonly ICommandManager Commands = Ioc.Default.GetRequiredService<ICommandManager>();
private readonly StatusCenterViewModel OngoingTasksViewModel = Ioc.Default.GetRequiredService<StatusCenterViewModel>();
Expand Down
109 changes: 76 additions & 33 deletions src/Files.App/UserControls/StatusCenter/StatusCenter.xaml
Original file line number Diff line number Diff line change
@@ -1,25 +1,30 @@
<!-- Copyright (c) Files Community. Licensed under the MIT License. -->
<UserControl
x:Class="Files.App.UserControls.StatusCenter.StatusCenter"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:animatedvisuals="using:Microsoft.UI.Xaml.Controls.AnimatedVisuals"
xmlns:converters="using:Files.App.Converters"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:helpers="using:Files.App.Helpers"
xmlns:local="using:Files.App.UserControls.StatusCenter"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:statuscenter="using:Files.App.Utils.StatusCenter"
mc:Ignorable="d">
mc:Ignorable="d"
MaxWidth="600"
MinWidth="300">

<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///Styles/StatusCenterStyles.xaml" />
</ResourceDictionary.MergedDictionaries>

<!-- Converters: none required for final layout -->
</ResourceDictionary>
</UserControl.Resources>

<Grid x:Name="RootGrid">
<Grid x:Name="RootGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MaxWidth="600" MinWidth="300">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
Expand Down Expand Up @@ -50,21 +55,32 @@
</Grid>

<!-- Status Center Items -->
<ListView
x:Name="StatusCenterItemsListView"
Grid.Row="1"
Padding="12,0,12,12"
VerticalAlignment="Stretch"
ItemsSource="{x:Bind ViewModel.StatusCenterItems, Mode=OneWay}"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollMode="Enabled"
SelectionMode="None">
<ListView
x:Name="StatusCenterItemsListView"
Grid.Row="1"
Padding="12,0,12,12"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemsSource="{x:Bind ViewModel.StatusCenterItems, Mode=OneWay}"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollMode="Enabled"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.HorizontalScrollMode="Disabled"
SelectionMode="None">

<ListView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>

<!-- Item Style -->
<ListView.ItemContainerStyle>
<Style BasedOn="{StaticResource DefaultListViewItemStyle}" TargetType="ListViewItem">
<Setter Property="Margin" Value="0,2,0,2" />
<Setter Property="Padding" Value="0,0,0,0" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>

Expand Down Expand Up @@ -95,7 +111,7 @@
<Grid x:Name="StatusCenterItemHeaderPanel" Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" MinWidth="0" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

Expand Down Expand Up @@ -126,26 +142,22 @@
</Grid>

<!-- Header Title & Description -->
<StackPanel
x:Name="StatusCenterItemHeadedrPanel"
<TextBlock
x:Name="StatusCenterItemHeaderTextBlock"
Grid.Column="1"
Margin="12,0"
VerticalAlignment="Center">

<TextBlock
x:Name="StatusCenterItemHeaderTextBlock"
x:Load="{x:Bind Header, Converter={StaticResource EmptyStringToBoolConverter}, Mode=OneWay}"
MaxLines="1"
Style="{StaticResource BodyTextBlockStyle}"
Text="{x:Bind Header, Mode=OneWay}"
TextTrimming="CharacterEllipsis"
TextWrapping="NoWrap"
ToolTipService.ToolTip="{x:Bind HeaderTooltip, Mode=OneWay}" />

</StackPanel>
VerticalAlignment="Center"
x:Load="{x:Bind Header, Converter={StaticResource EmptyStringToBoolConverter}, Mode=OneWay}"
MaxLines="2"
Style="{StaticResource BodyTextBlockStyle}"
Text="{x:Bind Header, Mode=OneWay}"
TextTrimming="CharacterEllipsis"
TextWrapping="Wrap"
HorizontalAlignment="Stretch"
ToolTipService.ToolTip="{x:Bind HeaderTooltip, Mode=OneWay}" />

<!-- Action Buttons -->
<StackPanel Grid.Column="2" VerticalAlignment="Center">
<StackPanel Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Right" MaxWidth="32">

<!-- Dismiss Item -->
<Button
Expand Down Expand Up @@ -219,6 +231,7 @@
x:Name="MainProgressBar"
Margin="4,4,4,4"
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
Foreground="{ThemeResource App.Theme.FillColorAttentionBrush}"
IsIndeterminate="{x:Bind IsIndeterminateProgress, Mode=OneWay}"
Visibility="{x:Bind IsExpanded, Converter={StaticResource NegateBoolToVisibilityConverter}, Mode=OneWay}"
Expand All @@ -230,13 +243,14 @@
Height="88"
Margin="4,4,4,12"
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
BorderBrush="{ThemeResource ControlStrongStrokeColorDefaultBrush}"
BorderThickness="1"
CornerRadius="4"
Visibility="{x:Bind IsExpanded, Converter={StaticResource BoolToVisibilityConverter}, Mode=OneWay}">

<Grid Padding="-2,-2,-2,-2">
<local:SpeedGraph Points="{x:Bind SpeedGraphValues, Mode=OneWay}" />
<Grid Padding="-2,-2,-2,-2" HorizontalAlignment="Stretch">
<local:SpeedGraph Points="{x:Bind SpeedGraphValues, Mode=OneWay}" HorizontalAlignment="Stretch" />
</Grid>

<!-- Speed Text -->
Expand Down Expand Up @@ -313,8 +327,10 @@
<!-- Action Buttons -->
<Grid
Grid.RowSpan="2"
Grid.Column="1"
VerticalAlignment="Top">
Grid.Column="2"
VerticalAlignment="Top"
HorizontalAlignment="Right"
MaxWidth="32">

<!-- More Options -->
<Button
Expand Down Expand Up @@ -355,7 +371,7 @@
</DataTemplate>
</ListView.ItemTemplate>

</ListView>
</ListView>

<!-- No Items -->
<TextBlock
Expand All @@ -366,5 +382,32 @@
x:Load="{x:Bind ViewModel.HasAnyItem, Converter={StaticResource BoolNegationConverter}, Mode=OneWay}"
Text="{helpers:ResourceString Name=NoFileOperations}" />

<!-- Resize Grip -->
<Border
x:Name="ResizeGrip"
Grid.Row="1"
Width="16"
Height="16"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Margin="4,0,0,4"
Background="Transparent"
BorderBrush="Transparent"
BorderThickness="0"
ManipulationMode="All"
ManipulationStarted="ResizeGrip_ManipulationStarted"
ManipulationDelta="ResizeGrip_ManipulationDelta"
ManipulationCompleted="ResizeGrip_ManipulationCompleted"
PointerEntered="ResizeGrip_PointerEntered"
PointerExited="ResizeGrip_PointerExited"
ToolTipService.ToolTip="Resize Status Center">
<FontIcon
FontFamily="{StaticResource SymbolThemeFontFamily}"
FontSize="12"
Glyph="&#xE740;"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Opacity="0.6" />
</Border>

</Grid>
</UserControl>
Loading
Loading