Skip to content
Merged
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
Expand Up @@ -23,6 +23,33 @@
<MicaBackdrop />
</winuiex:WindowEx.SystemBackdrop>
<Grid x:Name="RootElement">
<Grid.Resources>
<Storyboard x:Key="BreadcrumbFadeInStoryboard">
<DoubleAnimation
Storyboard.TargetName="BreadcrumbContainer"
Storyboard.TargetProperty="Opacity"
To="1"
Duration="0:0:0.25">
<DoubleAnimation.EasingFunction>
<CubicEase EasingMode="EaseOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
<Storyboard x:Key="BreadcrumbFadeOutStoryboard">
<DoubleAnimation
Storyboard.TargetName="BreadcrumbContainer"
Storyboard.TargetProperty="Opacity"
To="0"
Duration="0:0:0.2">
<DoubleAnimation.EasingFunction>
<CubicEase EasingMode="EaseIn" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BreadcrumbContainer" Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0:0:0.2" Value="Collapsed" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@ public sealed partial class SettingsWindow : WindowEx,
private readonly LocalKeyboardListener _localKeyboardListener;

private readonly NavigationViewItem? _internalNavItem;
private readonly Storyboard _breadcrumbFadeInStoryboard;
private readonly Storyboard _breadcrumbFadeOutStoryboard;

private Storyboard? _breadcrumbStoryboard;
private IReadOnlyList<ExtensionGalleryScreenshotViewModel> _currentScreenshotSet = [];
private ExtensionGalleryScreenshotViewModel? _currentScreenshot;

Expand All @@ -53,6 +54,8 @@ public sealed partial class SettingsWindow : WindowEx,
public SettingsWindow()
{
this.InitializeComponent();
_breadcrumbFadeInStoryboard = (Storyboard)RootElement.Resources["BreadcrumbFadeInStoryboard"];
_breadcrumbFadeOutStoryboard = (Storyboard)RootElement.Resources["BreadcrumbFadeOutStoryboard"];
this.ExtendsContentIntoTitleBar = true;
this.SetIcon();
var title = RS_.GetString("SettingsWindowTitle");
Expand Down Expand Up @@ -320,54 +323,30 @@ private void RootElement_SizeChanged(object sender, SizeChangedEventArgs e)

private void HideBreadcrumb()
{
_breadcrumbStoryboard?.Stop();

var fadeOut = new DoubleAnimation
if (BreadcrumbContainer.Visibility == Visibility.Collapsed)
{
To = 0,
Duration = new Duration(TimeSpan.FromMilliseconds(200)),
EasingFunction = new CubicEase { EasingMode = EasingMode.EaseIn },
};
Storyboard.SetTarget(fadeOut, BreadcrumbContainer);
Storyboard.SetTargetProperty(fadeOut, "Opacity");
return;
}

_breadcrumbStoryboard = new Storyboard();
_breadcrumbStoryboard.Children.Add(fadeOut);
_breadcrumbStoryboard.Completed += (_, _) =>
{
BreadcrumbContainer.Visibility = Visibility.Collapsed;
BreadcrumbContainer.Opacity = 1;
_breadcrumbStoryboard = null;
};
_breadcrumbStoryboard.Begin();
_breadcrumbFadeInStoryboard.Stop();
_breadcrumbFadeOutStoryboard.Stop();
_breadcrumbFadeOutStoryboard.Begin();
}

private void ShowBreadcrumb()
{
_breadcrumbStoryboard?.Stop();
_breadcrumbStoryboard = null;
_breadcrumbFadeInStoryboard.Stop();
_breadcrumbFadeOutStoryboard.Stop();

if (BreadcrumbContainer.Visibility == Visibility.Collapsed)
{
BreadcrumbContainer.Opacity = 0;
BreadcrumbContainer.Visibility = Visibility.Visible;

var fadeIn = new DoubleAnimation
{
To = 1,
Duration = new Duration(TimeSpan.FromMilliseconds(250)),
EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut },
};
Storyboard.SetTarget(fadeIn, BreadcrumbContainer);
Storyboard.SetTargetProperty(fadeIn, "Opacity");

_breadcrumbStoryboard = new Storyboard();
_breadcrumbStoryboard.Children.Add(fadeIn);
_breadcrumbStoryboard.Completed += (_, _) => _breadcrumbStoryboard = null;
_breadcrumbStoryboard.Begin();
_breadcrumbFadeInStoryboard.Begin();
}
Comment on lines 336 to 346
else
{
BreadcrumbContainer.Visibility = Visibility.Visible;
BreadcrumbContainer.Opacity = 1;
}
}
Expand All @@ -382,7 +361,7 @@ public void Dispose()
private void NavFrame_OnNavigated(object sender, NavigationEventArgs e)
{
BreadCrumbs.Clear();
ShowBreadcrumb();
var shouldShowBreadcrumb = true;

if (e.SourcePageType == typeof(GeneralPage))
{
Expand All @@ -405,14 +384,14 @@ private void NavFrame_OnNavigated(object sender, NavigationEventArgs e)
else if (e.SourcePageType == typeof(ExtensionGalleryPage))
{
NavView.SelectedItem = GalleryPageNavItem;
HideBreadcrumb();
shouldShowBreadcrumb = false;
var pageType = RS_.GetString("Settings_PageTitles_GalleryPage");
BreadCrumbs.Add(new(pageType, pageType));
}
else if (e.SourcePageType == typeof(ExtensionGalleryItemPage) && e.Parameter is ExtensionGalleryItemViewModel galleryExtension)
{
NavView.SelectedItem = GalleryPageNavItem;
HideBreadcrumb();
shouldShowBreadcrumb = false;
var galleryPageType = RS_.GetString("Settings_PageTitles_GalleryPage");
BreadCrumbs.Add(new(galleryPageType, "Gallery"));
BreadCrumbs.Add(new(galleryExtension.Title, galleryExtension));
Expand Down Expand Up @@ -441,6 +420,15 @@ private void NavFrame_OnNavigated(object sender, NavigationEventArgs e)
BreadCrumbs.Add(new($"[{e.SourcePageType?.Name}]", string.Empty));
Logger.LogError($"Unknown breadcrumb for page type '{e.SourcePageType}'");
}

if (shouldShowBreadcrumb)
{
ShowBreadcrumb();
}
else
{
HideBreadcrumb();
}
}

private void CloseScreenshotViewerButton_Click(object sender, RoutedEventArgs e)
Expand Down
Loading