Преглед изворни кода

UI: compat: show last updated date on entry hover

Evan Husted пре 1 година
родитељ
комит
4a4ea557de

+ 1 - 1
Directory.Packages.props

@@ -42,7 +42,7 @@
     <PackageVersion Include="Ryujinx.Graphics.Nvdec.Dependencies" Version="5.0.3-build14" />
     <PackageVersion Include="Ryujinx.Graphics.Vulkan.Dependencies.MoltenVK" Version="1.2.0" />
     <PackageVersion Include="Ryujinx.SDL2-CS" Version="2.30.0-build32" />
-    <PackageVersion Include="Gommon" Version="2.7.0.1" />
+    <PackageVersion Include="Gommon" Version="2.7.0.2" />
     <PackageVersion Include="securifybv.ShellLink" Version="0.1.0" />
     <PackageVersion Include="Sep" Version="0.6.0" />
     <PackageVersion Include="shaderc.net" Version="0.1.0" />

+ 25 - 0
src/Ryujinx/Assets/locales.json

@@ -22597,6 +22597,31 @@
         "zh_TW": ""
       }
     },
+    {
+      "ID": "CompatibilityListLastUpdated",
+      "Translations": {
+        "ar_SA": "",
+        "de_DE": "",
+        "el_GR": "",
+        "en_US": "Last updated: {0}",
+        "es_ES": "",
+        "fr_FR": "",
+        "he_IL": "",
+        "it_IT": "",
+        "ja_JP": "",
+        "ko_KR": "",
+        "no_NO": "",
+        "pl_PL": "",
+        "pt_BR": "",
+        "ru_RU": "",
+        "sv_SE": "",
+        "th_TH": "",
+        "tr_TR": "",
+        "uk_UA": "",
+        "zh_CN": "",
+        "zh_TW": ""
+      }
+    },
     {
       "ID": "CompatibilityListWarning",
       "Translations": {

+ 7 - 1
src/Ryujinx/Utilities/Compat/CompatibilityCsv.cs

@@ -1,4 +1,5 @@
 using Gommon;
+using Humanizer;
 using nietras.SeparatedValues;
 using Ryujinx.Ava.Common.Locale;
 using Ryujinx.Common.Logging;
@@ -83,6 +84,9 @@ namespace Ryujinx.Ava.Utilities.Compat
         public LocaleKeys? Status { get; }
         public DateTime LastUpdated { get; }
 
+        public string LocalizedLastUpdated =>
+            LocaleManager.FormatDynamicValue(LocaleKeys.CompatibilityListLastUpdated, LastUpdated.Humanize());
+
         public string LocalizedStatus => LocaleManager.Instance[Status!.Value];
         public string FormattedTitleId => TitleId
             .OrElse(new string(' ', 16));
@@ -97,7 +101,9 @@ namespace Ryujinx.Ava.Utilities.Compat
             StringBuilder sb = new("CompatibilityEntry: {");
             sb.Append($"{nameof(GameName)}=\"{GameName}\", ");
             sb.Append($"{nameof(TitleId)}={TitleId}, ");
-            sb.Append($"{nameof(Labels)}=\"{Labels}\", ");
+            sb.Append($"{nameof(Labels)}={
+                Labels.FormatCollection(it => $"\"{it}\"", separator: ", ", prefix: "[", suffix: "]")
+            }, ");
             sb.Append($"{nameof(Status)}=\"{Status}\", ");
             sb.Append($"{nameof(LastUpdated)}=\"{LastUpdated}\"");
             sb.Append('}');

+ 5 - 2
src/Ryujinx/Utilities/Compat/CompatibilityList.axaml

@@ -44,8 +44,11 @@
                          ItemsSource="{Binding CurrentEntries}">
                     <ListBox.ItemTemplate>
                         <DataTemplate DataType="{x:Type local:CompatibilityEntry}">
-                            <Grid Width="750" ColumnDefinitions="Auto,Auto,Auto,*"
-                                  Margin="5">
+                            <Grid Width="750"
+                                  Margin="5"
+                                  ColumnDefinitions="Auto,Auto,Auto,*"
+                                  Background="Transparent"
+                                  ToolTip.Tip="{Binding  LocalizedLastUpdated}">
                                 <TextBlock Grid.Column="0"
                                            Text="{Binding GameName}"
                                            Width="320"