From fe29a2ff6e7ae94b9e1f8cedc93d7fd0187de3cf Mon Sep 17 00:00:00 2001
From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>
Date: Thu, 12 Jan 2023 07:09:32 -0500
Subject: [PATCH] Ava UI: Settings Adjustments (#4273)

* Visual adjustments

* Match border to rest of app

* Fix overlapping controls

* Fix

* Fix
---
 Ryujinx.Ava/Assets/Locales/en_US.json         |  7 +--
 Ryujinx.Ava/Assets/Styles/BaseDark.xaml       |  1 +
 Ryujinx.Ava/Assets/Styles/BaseLight.xaml      |  1 +
 Ryujinx.Ava/Assets/Styles/Styles.xaml         |  7 ++-
 .../Views/Settings/SettingsLoggingView.axaml  | 21 ++++----
 .../Views/Settings/SettingsSystemView.axaml   |  8 +--
 Ryujinx.Ava/UI/Windows/SettingsWindow.axaml   | 54 +++++++++++--------
 7 files changed, 58 insertions(+), 41 deletions(-)

diff --git a/Ryujinx.Ava/Assets/Locales/en_US.json b/Ryujinx.Ava/Assets/Locales/en_US.json
index 0c767871..24f44dee 100644
--- a/Ryujinx.Ava/Assets/Locales/en_US.json
+++ b/Ryujinx.Ava/Assets/Locales/en_US.json
@@ -119,7 +119,7 @@
   "SettingsTabSystemAudioBackendSoundIO": "SoundIO",
   "SettingsTabSystemAudioBackendSDL2": "SDL2",
   "SettingsTabSystemHacks": "Hacks",
-  "SettingsTabSystemHacksNote": " (may cause instability)",
+  "SettingsTabSystemHacksNote": "May cause instability",
   "SettingsTabSystemExpandDramSize": "Use alternative memory layout (Developers)",
   "SettingsTabSystemIgnoreMissingServices": "Ignore Missing Services",
   "SettingsTabGraphics": "Graphics",
@@ -157,7 +157,8 @@
   "SettingsTabLoggingEnableGuestLogs": "Enable Guest Logs",
   "SettingsTabLoggingEnableFsAccessLogs": "Enable Fs Access Logs",
   "SettingsTabLoggingFsGlobalAccessLogMode": "Fs Global Access Log Mode:",
-  "SettingsTabLoggingDeveloperOptions": "Developer Options (WARNING: Will reduce performance)",
+  "SettingsTabLoggingDeveloperOptions": "Developer Options",
+  "SettingsTabLoggingDeveloperOptionsNote": "WARNING: Will reduce performance",
   "SettingsTabLoggingGraphicsBackendLogLevel": "Graphics Backend Log Level:",
   "SettingsTabLoggingGraphicsBackendLogLevelNone": "None",
   "SettingsTabLoggingGraphicsBackendLogLevelError": "Error",
@@ -618,4 +619,4 @@
   "UserProfilesRecoverEmptyList": "No profiles to recover",
   "UserEditorTitle" : "Edit User",
   "UserEditorTitleCreate" : "Create User"
-}
+}
\ No newline at end of file
diff --git a/Ryujinx.Ava/Assets/Styles/BaseDark.xaml b/Ryujinx.Ava/Assets/Styles/BaseDark.xaml
index 8991808f..c7f6266f 100644
--- a/Ryujinx.Ava/Assets/Styles/BaseDark.xaml
+++ b/Ryujinx.Ava/Assets/Styles/BaseDark.xaml
@@ -60,5 +60,6 @@
         <Color x:Key="MenuFlyoutPresenterBorderColor">#3D3D3D</Color>
         <Color x:Key="AppListBackgroundColor">#0FFFFFFF</Color>
         <Color x:Key="AppListHoverBackgroundColor">#1EFFFFFF</Color>
+        <Color x:Key="SecondaryTextColor">#A0FFFFFF</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 130d2bd4..70cb051c 100644
--- a/Ryujinx.Ava/Assets/Styles/BaseLight.xaml
+++ b/Ryujinx.Ava/Assets/Styles/BaseLight.xaml
@@ -52,5 +52,6 @@
         <Color x:Key="MenuFlyoutPresenterBorderColor">#C1C1C1</Color>
         <Color x:Key="AppListBackgroundColor">#b3ffffff</Color>
         <Color x:Key="AppListHoverBackgroundColor">#80cccccc</Color>
+        <Color x:Key="SecondaryTextColor">#A0000000</Color>
     </Styles.Resources>
 </Styles>
\ No newline at end of file
diff --git a/Ryujinx.Ava/Assets/Styles/Styles.xaml b/Ryujinx.Ava/Assets/Styles/Styles.xaml
index fc4e9ddd..04412bf2 100644
--- a/Ryujinx.Ava/Assets/Styles/Styles.xaml
+++ b/Ryujinx.Ava/Assets/Styles/Styles.xaml
@@ -56,8 +56,8 @@
     <Style Selector="Border.settings">
         <Setter Property="Background" Value="{DynamicResource ThemeDarkColor}" />
         <Setter Property="BorderBrush" Value="{DynamicResource MenuFlyoutPresenterBorderColor}" />
-        <Setter Property="BorderThickness" Value="2" />
-        <Setter Property="CornerRadius" Value="3" />
+        <Setter Property="BorderThickness" Value="1" />
+        <Setter Property="CornerRadius" Value="5" />
     </Style>
     <Style Selector="Image.small">
         <Setter Property="Width" Value="50" />
@@ -303,6 +303,9 @@
         <Color x:Key="ThemeControlBorderColor">#FF505050</Color>
         <Color x:Key="VsyncEnabled">#FF2EEAC9</Color>
         <Color x:Key="VsyncDisabled">#FFFF4554</Color>
+        <Color x:Key="AppListBackgroundColor">#0FFFFFFF</Color>
+        <Color x:Key="AppListHoverBackgroundColor">#1EFFFFFF</Color>
+        <Color x:Key="SecondaryTextColor">#A0FFFFFF</Color>
         <x:Double x:Key="ScrollBarThickness">15</x:Double>
         <x:Double x:Key="FontSizeSmall">8</x:Double>
         <x:Double x:Key="FontSizeNormal">10</x:Double>
diff --git a/Ryujinx.Ava/UI/Views/Settings/SettingsLoggingView.axaml b/Ryujinx.Ava/UI/Views/Settings/SettingsLoggingView.axaml
index 2163dcda..948e7181 100644
--- a/Ryujinx.Ava/UI/Views/Settings/SettingsLoggingView.axaml
+++ b/Ryujinx.Ava/UI/Views/Settings/SettingsLoggingView.axaml
@@ -1,4 +1,4 @@
-<UserControl 
+<UserControl
     x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsLoggingView"
     xmlns="https://github.com/avaloniaui"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
@@ -47,31 +47,34 @@
                               ToolTip.Tip="{locale:Locale ErrorLogTooltip}">
                         <TextBlock Text="{locale:Locale SettingsTabLoggingEnableErrorLogs}" />
                     </CheckBox>
-                    <CheckBox IsChecked="{Binding EnableTrace}"
-                              ToolTip.Tip="{locale:Locale TraceLogTooltip}">
-                        <TextBlock Text="{locale:Locale SettingsTabLoggingEnableTraceLogs}" />
-                    </CheckBox>
                     <CheckBox IsChecked="{Binding EnableGuest}"
                               ToolTip.Tip="{locale:Locale GuestLogTooltip}">
                         <TextBlock Text="{locale:Locale SettingsTabLoggingEnableGuestLogs}" />
                     </CheckBox>
                 </StackPanel>
                 <Separator Height="1" />
-                <TextBlock Classes="h1" Text="{locale:Locale SettingsTabLoggingDeveloperOptions}" />
+                <StackPanel Orientation="Vertical" Spacing="2">
+                    <TextBlock Classes="h1" Text="{locale:Locale SettingsTabLoggingDeveloperOptions}" />
+                    <TextBlock Foreground="{DynamicResource SecondaryTextColor}" Text="{locale:Locale SettingsTabLoggingDeveloperOptionsNote}" />
+                </StackPanel>
                 <StackPanel
                     Margin="10,0,0,0"
                     HorizontalAlignment="Stretch"
                     Orientation="Vertical"
                     Spacing="10">
                     <StackPanel Orientation="Vertical">
-                        <CheckBox IsChecked="{Binding EnableDebug}"
-                                ToolTip.Tip="{locale:Locale DebugLogTooltip}">
-                        <TextBlock Text="{locale:Locale SettingsTabLoggingEnableDebugLogs}" />
+                        <CheckBox IsChecked="{Binding EnableTrace}"
+                                  ToolTip.Tip="{locale:Locale TraceLogTooltip}">
+                            <TextBlock Text="{locale:Locale SettingsTabLoggingEnableTraceLogs}" />
                         </CheckBox>
                         <CheckBox IsChecked="{Binding EnableFsAccessLog}"
                                 ToolTip.Tip="{locale:Locale FileAccessLogTooltip}">
                         <TextBlock Text="{locale:Locale SettingsTabLoggingEnableFsAccessLogs}" />
                         </CheckBox>
+                        <CheckBox IsChecked="{Binding EnableDebug}"
+                                  ToolTip.Tip="{locale:Locale DebugLogTooltip}">
+                            <TextBlock Text="{locale:Locale SettingsTabLoggingEnableDebugLogs}" />
+                        </CheckBox>
                         <StackPanel Margin="0,10,0,0" Orientation="Horizontal" VerticalAlignment="Stretch">
                             <TextBlock VerticalAlignment="Center"
                                     ToolTip.Tip="{locale:Locale FSAccessLogModeTooltip}"
diff --git a/Ryujinx.Ava/UI/Views/Settings/SettingsSystemView.axaml b/Ryujinx.Ava/UI/Views/Settings/SettingsSystemView.axaml
index ddcca39c..1d4f040f 100644
--- a/Ryujinx.Ava/UI/Views/Settings/SettingsSystemView.axaml
+++ b/Ryujinx.Ava/UI/Views/Settings/SettingsSystemView.axaml
@@ -1,4 +1,4 @@
-<UserControl 
+<UserControl
     x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsSystemView"
     xmlns="https://github.com/avaloniaui"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
@@ -12,7 +12,7 @@
     <Design.DataContext>
         <viewModels:SettingsViewModel />
     </Design.DataContext>
-    <ScrollViewer 
+    <ScrollViewer
         Name="SystemPage"
         HorizontalAlignment="Stretch"
         VerticalAlignment="Stretch"
@@ -172,9 +172,9 @@
                     </CheckBox>
                 </StackPanel>
                 <Separator Height="1" />
-                <StackPanel Orientation="Horizontal">
+                <StackPanel Orientation="Vertical" Spacing="2">
                     <TextBlock Classes="h1" Text="{locale:Locale SettingsTabSystemHacks}" />
-                    <TextBlock Text="{locale:Locale SettingsTabSystemHacksNote}" />
+                    <TextBlock Foreground="{DynamicResource SecondaryTextColor}" Text="{locale:Locale SettingsTabSystemHacksNote}" />
                 </StackPanel>
                 <StackPanel
                     Margin="10,0,0,0"
diff --git a/Ryujinx.Ava/UI/Windows/SettingsWindow.axaml b/Ryujinx.Ava/UI/Windows/SettingsWindow.axaml
index 851e9b5b..a44cbfe7 100644
--- a/Ryujinx.Ava/UI/Windows/SettingsWindow.axaml
+++ b/Ryujinx.Ava/UI/Windows/SettingsWindow.axaml
@@ -44,20 +44,22 @@
             <settings:SettingsNetworkView Name="NetworkPage" />
             <settings:SettingsLoggingView Name="LoggingPage" />
         </Grid>
-        <ui:NavigationView Grid.Row="1"
-                           IsSettingsVisible="False"
-                           Name="NavPanel"
-                           IsBackEnabled="False"
-                           PaneDisplayMode="Left"
-                           Margin="2,10,10,0"
-                           VerticalAlignment="Stretch"
-                           HorizontalAlignment="Stretch"
-                           OpenPaneLength="200">
+        <ui:NavigationView
+            Grid.Row="1"
+            IsSettingsVisible="False"
+            Name="NavPanel"
+            IsBackEnabled="False"
+            PaneDisplayMode="Left"
+            Margin="2,10,10,0"
+            VerticalAlignment="Stretch"
+            HorizontalAlignment="Stretch"
+            OpenPaneLength="200">
             <ui:NavigationView.MenuItems>
-                <ui:NavigationViewItem IsSelected="True"
-                                       Content="{locale:Locale SettingsTabGeneral}"
-                                       Tag="UiPage"
-                                       Icon="New" />
+                <ui:NavigationViewItem
+                    IsSelected="True"
+                    Content="{locale:Locale SettingsTabGeneral}"
+                    Tag="UiPage"
+                    Icon="New" />
                 <ui:NavigationViewItem
                     Content="{locale:Locale SettingsTabInput}"
                     Tag="InputPage"
@@ -74,8 +76,9 @@
                     Content="{locale:Locale SettingsTabCpu}"
                     Tag="CpuPage">
                     <ui:NavigationViewItem.Icon>
-                        <ui:FontIcon FontFamily="avares://Ryujinx.Ava/Assets/Fonts#Segoe Fluent Icons"
-                                     Glyph="{helpers:GlyphValueConverter Chip}" />
+                        <ui:FontIcon
+                            FontFamily="avares://Ryujinx.Ava/Assets/Fonts#Segoe Fluent Icons"
+                            Glyph="{helpers:GlyphValueConverter Chip}" />
                     </ui:NavigationViewItem.Icon>
                 </ui:NavigationViewItem>
                 <ui:NavigationViewItem
@@ -95,6 +98,11 @@
                     Tag="LoggingPage"
                     Icon="Document" />
             </ui:NavigationView.MenuItems>
+            <ui:NavigationView.Styles>
+                <Style Selector="Grid#PlaceholderGrid">
+                    <Setter Property="Height" Value="40" />
+                </Style>
+            </ui:NavigationView.Styles>
         </ui:NavigationView>
         <ReversibleStackPanel
             Grid.Row="2"
@@ -103,17 +111,17 @@
             Orientation="Horizontal"
             HorizontalAlignment="Right"
             ReverseOrder="{Binding IsMacOS}">
-            <Button 
-                HotKey="Enter" 
+            <Button
+                HotKey="Enter"
                 Classes="accent"
-                Content="{locale:Locale SettingsButtonOk}" 
+                Content="{locale:Locale SettingsButtonOk}"
                 Command="{ReflectionBinding OkButton}" />
-            <Button 
-                HotKey="Escape" 
-                Content="{locale:Locale SettingsButtonCancel}" 
+            <Button
+                HotKey="Escape"
+                Content="{locale:Locale SettingsButtonCancel}"
                 Command="{ReflectionBinding CancelButton}" />
-            <Button 
-                Content="{locale:Locale SettingsButtonApply}" 
+            <Button
+                Content="{locale:Locale SettingsButtonApply}"
                 Command="{ReflectionBinding ApplyButton}" />
         </ReversibleStackPanel>
     </Grid>