From 121296834a5aacb7f82d27063902914077f037e0 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com> Date: Mon, 5 Dec 2022 17:04:18 -0500 Subject: [PATCH] Ava GUI: Several UI Fixes (#3991) * Fix accessability violations in ListView * Use accent colour for favourite star * Hide progress bar when its done * App Data Formating - Added space before storage unit - Changed so minutes have 0 decimals, and hours and days have 1 * Fix theming * Fix mismatched corner radius * Fix acceability violations in GridView * More consistency between Grid and List View * Fix margin * Let whitespace defocus controls --- Ryujinx.Ava/Assets/Styles/BaseDark.xaml | 2 + Ryujinx.Ava/Assets/Styles/BaseLight.xaml | 2 + Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml | 3 +- Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml | 3 +- Ryujinx.Ava/Ui/Controls/GameGridView.axaml | 64 ++++++------------- Ryujinx.Ava/Ui/Controls/GameListView.axaml | 32 ++++------ Ryujinx.Ava/Ui/Controls/InputDialog.axaml | 3 +- .../Ui/Controls/NavigationDialogHost.axaml | 3 +- .../ProfileImageSelectionDialog.axaml | 3 +- Ryujinx.Ava/Ui/Controls/RendererHost.axaml | 3 +- Ryujinx.Ava/Ui/Controls/SaveManager.axaml | 3 +- .../Ui/Controls/UpdateWaitWindow.axaml | 3 +- Ryujinx.Ava/Ui/Controls/UserEditor.axaml | 3 +- Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml | 3 +- Ryujinx.Ava/Ui/Controls/UserSelector.axaml | 3 +- .../Ui/ViewModels/MainWindowViewModel.cs | 11 ++-- Ryujinx.Ava/Ui/Windows/AboutWindow.axaml | 3 +- Ryujinx.Ava/Ui/Windows/AmiiboWindow.axaml | 3 +- Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml | 3 +- Ryujinx.Ava/Ui/Windows/CheatWindow.axaml | 3 +- .../Windows/ContentDialogOverlayWindow.axaml | 3 +- .../Ui/Windows/ControllerSettingsWindow.axaml | 3 +- .../DownloadableContentManagerWindow.axaml | 3 +- Ryujinx.Ava/Ui/Windows/MainWindow.axaml | 3 +- .../Ui/Windows/MotionSettingsWindow.axaml | 3 +- .../Ui/Windows/RumbleSettingsWindow.axaml | 3 +- Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml | 3 +- .../Ui/Windows/TitleUpdateWindow.axaml | 3 +- Ryujinx.Ui.Common/App/ApplicationLibrary.cs | 10 +-- 29 files changed, 94 insertions(+), 96 deletions(-) diff --git a/Ryujinx.Ava/Assets/Styles/BaseDark.xaml b/Ryujinx.Ava/Assets/Styles/BaseDark.xaml index fbd4d4b37c..8991808fdb 100644 --- a/Ryujinx.Ava/Assets/Styles/BaseDark.xaml +++ b/Ryujinx.Ava/Assets/Styles/BaseDark.xaml @@ -58,5 +58,7 @@ <Color x:Key="SystemChromeWhiteColor">#FFFFFFFF</Color> <Color x:Key="ThemeForegroundColor">#FFFFFFFF</Color> <Color x:Key="MenuFlyoutPresenterBorderColor">#3D3D3D</Color> + <Color x:Key="AppListBackgroundColor">#0FFFFFFF</Color> + <Color x:Key="AppListHoverBackgroundColor">#1EFFFFFF</Color> </Styles.Resources> </Styles> \ No newline at end of file diff --git a/Ryujinx.Ava/Assets/Styles/BaseLight.xaml b/Ryujinx.Ava/Assets/Styles/BaseLight.xaml index 45012c5b53..130d2bd4ca 100644 --- a/Ryujinx.Ava/Assets/Styles/BaseLight.xaml +++ b/Ryujinx.Ava/Assets/Styles/BaseLight.xaml @@ -50,5 +50,7 @@ <Color x:Key="SystemChromeWhiteColor">#FFFFFFFF</Color> <Color x:Key="ThemeForegroundColor">#FF000000</Color> <Color x:Key="MenuFlyoutPresenterBorderColor">#C1C1C1</Color> + <Color x:Key="AppListBackgroundColor">#b3ffffff</Color> + <Color x:Key="AppListHoverBackgroundColor">#80cccccc</Color> </Styles.Resources> </Styles> \ No newline at end of file diff --git a/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml b/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml index 9816dbec74..aae66ccca8 100644 --- a/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml +++ b/Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml @@ -11,7 +11,8 @@ Height="340" CanResize="False" SizeToContent="Height" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Grid Margin="20" HorizontalAlignment="Stretch" diff --git a/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml b/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml index 329c74230b..4f6a0ea365 100644 --- a/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml +++ b/Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml @@ -6,7 +6,8 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows" Width="400" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Grid Margin="20" HorizontalAlignment="Stretch" diff --git a/Ryujinx.Ava/Ui/Controls/GameGridView.axaml b/Ryujinx.Ava/Ui/Controls/GameGridView.axaml index bcf38e7a0e..b0669463b8 100644 --- a/Ryujinx.Ava/Ui/Controls/GameGridView.axaml +++ b/Ryujinx.Ava/Ui/Controls/GameGridView.axaml @@ -10,7 +10,8 @@ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" d:DesignHeight="450" d:DesignWidth="800" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <UserControl.Resources> <controls:BitmapArrayValueConverter x:Key="ByteImage" /> <MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened"> @@ -113,8 +114,8 @@ <Style Selector="ListBoxItem"> <Setter Property="Padding" Value="0" /> <Setter Property="Margin" Value="5" /> - <Setter Property="CornerRadius" Value="5" /> - <Setter Property="Background" Value="{DynamicResource SystemAccentColorDark3}" /> + <Setter Property="CornerRadius" Value="4" /> + <Setter Property="Background" Value="{DynamicResource AppListBackgroundColor}" /> <Style.Animations> <Animation Duration="0:0:0.7"> <KeyFrame Cue="0%"> @@ -132,27 +133,18 @@ </Animation> </Style.Animations> </Style> + <Style Selector="ListBoxItem:selected /template/ ContentPresenter"> + <Setter Property="Background" Value="{DynamicResource AppListBackgroundColor}" /> + </Style> + <Style Selector="ListBoxItem:pointerover /template/ ContentPresenter"> + <Setter Property="Background" Value="{DynamicResource AppListHoverBackgroundColor}" /> + </Style> </ListBox.Styles> <ListBox.ItemTemplate> <DataTemplate> <Grid> - <Grid.Styles> - <Style Selector="ui|SymbolIcon.small.icon"> - <Setter Property="FontSize" Value="15" /> - </Style> - <Style Selector="ui|SymbolIcon.normal.icon"> - <Setter Property="FontSize" Value="19" /> - </Style> - <Style Selector="ui|SymbolIcon.large.icon"> - <Setter Property="FontSize" Value="23" /> - </Style> - <Style Selector="ui|SymbolIcon.huge.icon"> - <Setter Property="FontSize" Value="26" /> - </Style> - </Grid.Styles> <Border - Margin="0" - Padding="{Binding $parent[UserControl].DataContext.GridItemPadding}" + Margin="10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}" @@ -160,57 +152,41 @@ Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}" Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}" ClipToBounds="True" - CornerRadius="5"> - <Grid Margin="0"> + CornerRadius="4"> + <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Image Grid.Row="0" - Margin="0" HorizontalAlignment="Stretch" VerticalAlignment="Top" Source="{Binding Icon, Converter={StaticResource ByteImage}}" /> - <StackPanel + <Panel Grid.Row="1" Height="50" - Margin="5" + Margin="0 10 0 0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}"> <TextBlock HorizontalAlignment="Stretch" + VerticalAlignment="Center" Text="{Binding TitleName}" TextAlignment="Center" TextWrapping="Wrap" /> - </StackPanel> + </Panel> </Grid> </Border> <ui:SymbolIcon - Margin="5" + Margin="5,5,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" - Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}" - Classes.icon="true" - Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}" - Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}" - Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}" - Foreground="Yellow" + FontSize="16" + Foreground="{DynamicResource SystemAccentColor}" IsVisible="{Binding Favorite}" Symbol="StarFilled" /> - <ui:SymbolIcon - Margin="5" - HorizontalAlignment="Left" - VerticalAlignment="Top" - Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}" - Classes.icon="true" - Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}" - Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}" - Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}" - Foreground="Black" - IsVisible="{Binding Favorite}" - Symbol="Star" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> diff --git a/Ryujinx.Ava/Ui/Controls/GameListView.axaml b/Ryujinx.Ava/Ui/Controls/GameListView.axaml index 2c6022bded..b99bab440c 100644 --- a/Ryujinx.Ava/Ui/Controls/GameListView.axaml +++ b/Ryujinx.Ava/Ui/Controls/GameListView.axaml @@ -10,7 +10,8 @@ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" d:DesignHeight="450" d:DesignWidth="800" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <UserControl.Resources> <controls:BitmapArrayValueConverter x:Key="ByteImage" /> <MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened"> @@ -115,8 +116,8 @@ <Setter Property="Padding" Value="0" /> <Setter Property="Margin" Value="0" /> <Setter Property="CornerRadius" Value="5" /> - <Setter Property="BorderBrush" Value="{DynamicResource SystemAccentColorDark3}" /> - <Setter Property="BorderThickness" Value="2" /> + <Setter Property="Background" Value="{DynamicResource AppListBackgroundColor}" /> + <Setter Property="BorderThickness" Value="2"/> <Style.Animations> <Animation Duration="0:0:0.7"> <KeyFrame Cue="0%"> @@ -134,6 +135,12 @@ </Animation> </Style.Animations> </Style> + <Style Selector="ListBoxItem:selected /template/ ContentPresenter"> + <Setter Property="Background" Value="{DynamicResource AppListBackgroundColor}" /> + </Style> + <Style Selector="ListBoxItem:pointerover /template/ ContentPresenter"> + <Setter Property="Background" Value="{DynamicResource AppListHoverBackgroundColor}" /> + </Style> </ListBox.Styles> <ListBox.ItemTemplate> <DataTemplate> @@ -152,9 +159,6 @@ <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> - <Grid.RowDefinitions> - <RowDefinition /> - </Grid.RowDefinitions> <Image Grid.RowSpan="3" Grid.Column="0" @@ -169,7 +173,7 @@ HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Vertical" - Spacing="5"> + Spacing="5" > <TextBlock HorizontalAlignment="Stretch" Text="{Binding TitleName}" @@ -214,20 +218,10 @@ Margin="-5,-5,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" - FontSize="20" - Foreground="Yellow" + FontSize="16" + Foreground="{DynamicResource SystemAccentColor}" IsVisible="{Binding Favorite}" Symbol="StarFilled" /> - <ui:SymbolIcon - Grid.Row="0" - Grid.Column="0" - Margin="-5,-5,0,0" - HorizontalAlignment="Left" - VerticalAlignment="Top" - FontSize="20" - Foreground="Black" - IsVisible="{Binding Favorite}" - Symbol="Star" /> </Grid> </Border> </Grid> diff --git a/Ryujinx.Ava/Ui/Controls/InputDialog.axaml b/Ryujinx.Ava/Ui/Controls/InputDialog.axaml index e665a81281..56f96f82ad 100644 --- a/Ryujinx.Ava/Ui/Controls/InputDialog.axaml +++ b/Ryujinx.Ava/Ui/Controls/InputDialog.axaml @@ -4,7 +4,8 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Grid Margin="5,10,5,5" HorizontalAlignment="Stretch" diff --git a/Ryujinx.Ava/Ui/Controls/NavigationDialogHost.axaml b/Ryujinx.Ava/Ui/Controls/NavigationDialogHost.axaml index b0ab5d301f..fb1f6b6d1c 100644 --- a/Ryujinx.Ava/Ui/Controls/NavigationDialogHost.axaml +++ b/Ryujinx.Ava/Ui/Controls/NavigationDialogHost.axaml @@ -4,7 +4,8 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Ryujinx.Ava.Ui.Controls.NavigationDialogHost"> + x:Class="Ryujinx.Ava.Ui.Controls.NavigationDialogHost" + Focusable="True"> <ui:Frame HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="ContentFrame" /> </UserControl> \ No newline at end of file diff --git a/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml b/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml index 750edf8b00..7bbd03ca26 100644 --- a/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml +++ b/Ryujinx.Ava/Ui/Controls/ProfileImageSelectionDialog.axaml @@ -4,7 +4,8 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" xmlns:Locale="clr-namespace:Ryujinx.Ava.Common.Locale" - x:Class="Ryujinx.Ava.Ui.Controls.ProfileImageSelectionDialog"> + x:Class="Ryujinx.Ava.Ui.Controls.ProfileImageSelectionDialog" + Focusable="True"> <Grid HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="5,10,5, 5"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> diff --git a/Ryujinx.Ava/Ui/Controls/RendererHost.axaml b/Ryujinx.Ava/Ui/Controls/RendererHost.axaml index 5b27182dfd..45bc1b2b84 100644 --- a/Ryujinx.Ava/Ui/Controls/RendererHost.axaml +++ b/Ryujinx.Ava/Ui/Controls/RendererHost.axaml @@ -3,5 +3,6 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Ryujinx.Ava.Ui.Controls.RendererHost"> + x:Class="Ryujinx.Ava.Ui.Controls.RendererHost" + Focusable="True"> </UserControl> diff --git a/Ryujinx.Ava/Ui/Controls/SaveManager.axaml b/Ryujinx.Ava/Ui/Controls/SaveManager.axaml index ce337c7b4c..8721d2a7bf 100644 --- a/Ryujinx.Ava/Ui/Controls/SaveManager.axaml +++ b/Ryujinx.Ava/Ui/Controls/SaveManager.axaml @@ -9,7 +9,8 @@ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" Height="400" Width="550" - x:Class="Ryujinx.Ava.Ui.Controls.SaveManager"> + x:Class="Ryujinx.Ava.Ui.Controls.SaveManager" + Focusable="True"> <UserControl.Resources> <controls:BitmapArrayValueConverter x:Key="ByteImage" /> </UserControl.Resources> diff --git a/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml b/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml index 247849adf0..8309e36906 100644 --- a/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml +++ b/Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml @@ -8,7 +8,8 @@ Title="Ryujinx - Waiting" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterOwner" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Grid Margin="20" HorizontalAlignment="Stretch" diff --git a/Ryujinx.Ava/Ui/Controls/UserEditor.axaml b/Ryujinx.Ava/Ui/Controls/UserEditor.axaml index 898527e6a0..a00e4210d1 100644 --- a/Ryujinx.Ava/Ui/Controls/UserEditor.axaml +++ b/Ryujinx.Ava/Ui/Controls/UserEditor.axaml @@ -12,7 +12,8 @@ Margin="0" MinWidth="500" Padding="0" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <UserControl.Resources> <controls:BitmapArrayValueConverter x:Key="ByteImage" /> </UserControl.Resources> diff --git a/Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml b/Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml index 6345ec6746..0efb50190b 100644 --- a/Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml +++ b/Ryujinx.Ava/Ui/Controls/UserRecoverer.axaml @@ -10,7 +10,8 @@ xmlns:Locale="clr-namespace:Ryujinx.Ava.Common.Locale" xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels" - x:Class="Ryujinx.Ava.Ui.Controls.UserRecoverer"> + x:Class="Ryujinx.Ava.Ui.Controls.UserRecoverer" + Focusable="True"> <Design.DataContext> <viewModels:UserProfileViewModel /> </Design.DataContext> diff --git a/Ryujinx.Ava/Ui/Controls/UserSelector.axaml b/Ryujinx.Ava/Ui/Controls/UserSelector.axaml index bc6d8c09ca..7cfdc481dc 100644 --- a/Ryujinx.Ava/Ui/Controls/UserSelector.axaml +++ b/Ryujinx.Ava/Ui/Controls/UserSelector.axaml @@ -12,7 +12,8 @@ d:DesignHeight="450" MinWidth="500" d:DesignWidth="800" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <UserControl.Resources> <controls:BitmapArrayValueConverter x:Key="ByteImage" /> </UserControl.Resources> diff --git a/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs b/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs index c7053eb188..0db20792a0 100644 --- a/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs +++ b/Ryujinx.Ava/Ui/ViewModels/MainWindowViewModel.cs @@ -435,9 +435,7 @@ namespace Ryujinx.Ava.Ui.ViewModels OnPropertyChanged(); } } - - public Thickness GridItemPadding => ShowNames ? new Thickness() : new Thickness(5); - + public bool ShowMenuAndStatusBar { get => _showMenuAndStatusBar; @@ -599,7 +597,6 @@ namespace Ryujinx.Ava.Ui.ViewModels ConfigurationState.Instance.Ui.ShowNames.Value = value; OnPropertyChanged(); - OnPropertyChanged(nameof(GridItemPadding)); OnPropertyChanged(nameof(GridSizeScale)); ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath); @@ -716,7 +713,6 @@ namespace Ryujinx.Ava.Ui.ViewModels OnPropertyChanged(nameof(IsGridLarge)); OnPropertyChanged(nameof(IsGridHuge)); OnPropertyChanged(nameof(ShowNames)); - OnPropertyChanged(nameof(GridItemPadding)); ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath); } @@ -780,6 +776,11 @@ namespace Ryujinx.Ava.Ui.ViewModels { _owner.LoadProgressBar.IsVisible = false; } + + if (e.NumAppsLoaded == e.NumAppsFound) + { + _owner.LoadProgressBar.IsVisible = false; + } }); } diff --git a/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml b/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml index 8f5e2d23d6..f3e42eb7ee 100644 --- a/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/AboutWindow.axaml @@ -15,7 +15,8 @@ CanResize="False" SizeToContent="Width" WindowStartupLocation="CenterOwner" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Grid Margin="15" HorizontalAlignment="Stretch" diff --git a/Ryujinx.Ava/Ui/Windows/AmiiboWindow.axaml b/Ryujinx.Ava/Ui/Windows/AmiiboWindow.axaml index f91bb3131e..427ab36356 100644 --- a/Ryujinx.Ava/Ui/Windows/AmiiboWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/AmiiboWindow.axaml @@ -11,7 +11,8 @@ WindowStartupLocation="CenterOwner" Width="800" MinHeight="650" Height="650" SizeToContent="Manual" - MinWidth="600"> + MinWidth="600" + Focusable="True"> <Design.DataContext> <viewModels:AmiiboWindowViewModel /> </Design.DataContext> diff --git a/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml b/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml index 0be6513002..a1099d1b5d 100644 --- a/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/AvatarWindow.axaml @@ -11,7 +11,8 @@ xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels" xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls" x:CompileBindings="True" - x:DataType="viewModels:AvatarProfileViewModel"> + x:DataType="viewModels:AvatarProfileViewModel" + Focusable="True"> <Design.DataContext> <viewModels:AvatarProfileViewModel /> </Design.DataContext> diff --git a/Ryujinx.Ava/Ui/Windows/CheatWindow.axaml b/Ryujinx.Ava/Ui/Windows/CheatWindow.axaml index 8d91161161..8d313d647a 100644 --- a/Ryujinx.Ava/Ui/Windows/CheatWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/CheatWindow.axaml @@ -12,7 +12,8 @@ MinWidth="500" MinHeight="500" WindowStartupLocation="CenterOwner" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Window.Styles> <Style Selector="TreeViewItem"> <Setter Property="IsExpanded" Value="True" /> diff --git a/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml b/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml index 2967f4f216..037b7af85e 100644 --- a/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/ContentDialogOverlayWindow.axaml @@ -8,7 +8,8 @@ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" x:Class="Ryujinx.Ava.Ui.Windows.ContentDialogOverlayWindow" xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows" - Title="ContentDialogOverlayWindow"> + Title="ContentDialogOverlayWindow" + Focusable="True"> <window:StyleableWindow.Styles> <Style Selector="ui|ContentDialog /template/ Panel#LayoutRoot"> <Setter Property="Background" diff --git a/Ryujinx.Ava/Ui/Windows/ControllerSettingsWindow.axaml b/Ryujinx.Ava/Ui/Windows/ControllerSettingsWindow.axaml index 7ddf671973..3e8dc41eb8 100644 --- a/Ryujinx.Ava/Ui/Windows/ControllerSettingsWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/ControllerSettingsWindow.axaml @@ -13,7 +13,8 @@ d:DesignHeight="800" d:DesignWidth="800" x:CompileBindings="False" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Design.DataContext> <viewModels:ControllerSettingsViewModel /> </Design.DataContext> diff --git a/Ryujinx.Ava/Ui/Windows/DownloadableContentManagerWindow.axaml b/Ryujinx.Ava/Ui/Windows/DownloadableContentManagerWindow.axaml index 2e3fd05bb8..f3de6a77a7 100644 --- a/Ryujinx.Ava/Ui/Windows/DownloadableContentManagerWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/DownloadableContentManagerWindow.axaml @@ -14,7 +14,8 @@ MaxHeight="500" SizeToContent="Height" WindowStartupLocation="CenterOwner" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Grid Name="DownloadableContentGrid" Margin="15"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> diff --git a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml index 5b9dd8f910..5aa38418c8 100644 --- a/Ryujinx.Ava/Ui/Windows/MainWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/MainWindow.axaml @@ -20,7 +20,8 @@ x:CompileBindings="True" x:DataType="viewModels:MainWindowViewModel" WindowStartupLocation="CenterScreen" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Window.Styles> <Style Selector="TitleBar:fullscreen"> <Setter Property="Background" Value="#000000" /> diff --git a/Ryujinx.Ava/Ui/Windows/MotionSettingsWindow.axaml b/Ryujinx.Ava/Ui/Windows/MotionSettingsWindow.axaml index 5660b567c9..63c8639a26 100644 --- a/Ryujinx.Ava/Ui/Windows/MotionSettingsWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/MotionSettingsWindow.axaml @@ -6,7 +6,8 @@ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" mc:Ignorable="d" - x:Class="Ryujinx.Ava.Ui.Windows.MotionSettingsWindow"> + x:Class="Ryujinx.Ava.Ui.Windows.MotionSettingsWindow" + Focusable="True"> <Grid Margin="10"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> diff --git a/Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml b/Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml index 28a40481c9..120643aad0 100644 --- a/Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/RumbleSettingsWindow.axaml @@ -6,7 +6,8 @@ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale" mc:Ignorable="d" - x:Class="Ryujinx.Ava.Ui.Windows.RumbleSettingsWindow"> + x:Class="Ryujinx.Ava.Ui.Windows.RumbleSettingsWindow" + Focusable="True"> <Grid Margin="10"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> diff --git a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml b/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml index 0a5cdc8934..30a34fbfbe 100644 --- a/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/SettingsWindow.axaml @@ -18,7 +18,8 @@ WindowStartupLocation="CenterOwner" x:CompileBindings="True" x:DataType="viewModels:SettingsViewModel" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Design.DataContext> <viewModels:SettingsViewModel /> </Design.DataContext> diff --git a/Ryujinx.Ava/Ui/Windows/TitleUpdateWindow.axaml b/Ryujinx.Ava/Ui/Windows/TitleUpdateWindow.axaml index dd690a55c1..6efac1d2a4 100644 --- a/Ryujinx.Ava/Ui/Windows/TitleUpdateWindow.axaml +++ b/Ryujinx.Ava/Ui/Windows/TitleUpdateWindow.axaml @@ -14,7 +14,8 @@ MaxHeight="400" SizeToContent="Height" WindowStartupLocation="CenterOwner" - mc:Ignorable="d"> + mc:Ignorable="d" + Focusable="True"> <Grid Margin="15"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> diff --git a/Ryujinx.Ui.Common/App/ApplicationLibrary.cs b/Ryujinx.Ui.Common/App/ApplicationLibrary.cs index 6f25478517..466b2b9521 100644 --- a/Ryujinx.Ui.Common/App/ApplicationLibrary.cs +++ b/Ryujinx.Ui.Common/App/ApplicationLibrary.cs @@ -467,7 +467,7 @@ namespace Ryujinx.Ui.App.Common TimePlayed = ConvertSecondsToReadableString(appMetadata.TimePlayed), LastPlayed = appMetadata.LastPlayed, FileExtension = Path.GetExtension(applicationPath).ToUpper().Remove(0, 1), - FileSize = (fileSize < 1) ? (fileSize * 1024).ToString("0.##") + "MiB" : fileSize.ToString("0.##") + "GiB", + FileSize = (fileSize < 1) ? (fileSize * 1024).ToString("0.##") + " MiB" : fileSize.ToString("0.##") + " GiB", Path = applicationPath, ControlHolder = controlHolder }; @@ -742,19 +742,19 @@ namespace Ryujinx.Ui.App.Common if (seconds < secondsPerMinute) { - readableString = $"{seconds}s"; + readableString = $"{seconds} seconds"; } else if (seconds < secondsPerHour) { - readableString = $"{Math.Round(seconds / secondsPerMinute, 2, MidpointRounding.AwayFromZero)} mins"; + readableString = $"{Math.Round(seconds / secondsPerMinute, 0, MidpointRounding.AwayFromZero)} minutes"; } else if (seconds < secondsPerDay) { - readableString = $"{Math.Round(seconds / secondsPerHour, 2, MidpointRounding.AwayFromZero)} hrs"; + readableString = $"{Math.Round(seconds / secondsPerHour, 1, MidpointRounding.AwayFromZero)} hours"; } else { - readableString = $"{Math.Round(seconds / secondsPerDay, 2, MidpointRounding.AwayFromZero)} days"; + readableString = $"{Math.Round(seconds / secondsPerDay, 1, MidpointRounding.AwayFromZero)} days"; } return readableString;