From 18909195d1361a18af866634f4b1bdd4443aa24c Mon Sep 17 00:00:00 2001
From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:12:43 +0000
Subject: Old buttons (#6237)

---
 src/Ryujinx.Ava/Assets/Locales/en_US.json          |  4 ++++
 .../UI/Controls/ApplicationContextMenu.axaml       |  9 ++++++++
 .../UI/Controls/ApplicationContextMenu.axaml.cs    | 26 ++++++++++++++++++++++
 3 files changed, 39 insertions(+)

(limited to 'src')

diff --git a/src/Ryujinx.Ava/Assets/Locales/en_US.json b/src/Ryujinx.Ava/Assets/Locales/en_US.json
index 6ac9ae94..b02613a7 100644
--- a/src/Ryujinx.Ava/Assets/Locales/en_US.json
+++ b/src/Ryujinx.Ava/Assets/Locales/en_US.json
@@ -73,6 +73,10 @@
   "GameListContextMenuCreateShortcut": "Create Application Shortcut",
   "GameListContextMenuCreateShortcutToolTip": "Create a Desktop Shortcut that launches the selected Application",
   "GameListContextMenuCreateShortcutToolTipMacOS": "Create a shortcut in macOS's Applications folder that launches the selected Application",
+  "GameListContextMenuOpenModsDirectory": "Open Mods Directory",
+  "GameListContextMenuOpenModsDirectoryToolTip": "Opens the directory which contains Application's Mods",
+  "GameListContextMenuOpenSdModsDirectory": "Open Atmosphere Mods Directory",
+  "GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
   "StatusBarGamesLoaded": "{0}/{1} Games Loaded",
   "StatusBarSystemVersion": "System Version: {0}",
   "LinuxVmMaxMapCountDialogTitle": "Low limit for memory mappings detected",
diff --git a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml
index 5bdeb8ad..dd0926fc 100644
--- a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml
+++ b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml
@@ -51,6 +51,15 @@
         Header="{locale:Locale GameListContextMenuManageMod}"
         ToolTip.Tip="{locale:Locale GameListContextMenuManageModToolTip}" />
     <Separator />
+    <MenuItem
+        Click="OpenModsDirectory_Click"
+        Header="{locale:Locale GameListContextMenuOpenModsDirectory}"
+        ToolTip.Tip="{locale:Locale GameListContextMenuOpenModsDirectoryToolTip}" />
+    <MenuItem
+        Click="OpenSdModsDirectory_Click"
+        Header="{locale:Locale GameListContextMenuOpenSdModsDirectory}"
+        ToolTip.Tip="{locale:Locale GameListContextMenuOpenSdModsDirectoryToolTip}" />
+    <Separator />
     <MenuItem Header="{locale:Locale GameListContextMenuCacheManagement}">
         <MenuItem
             Click="PurgePtcCache_Click"
diff --git a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs
index 1fb9d3b3..894ac6c1 100644
--- a/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs
+++ b/src/Ryujinx.Ava/UI/Controls/ApplicationContextMenu.axaml.cs
@@ -126,6 +126,32 @@ namespace Ryujinx.Ava.UI.Controls
             }
         }
 
+        public void OpenModsDirectory_Click(object sender, RoutedEventArgs args)
+        {
+            var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
+
+            if (viewModel?.SelectedApplication != null)
+            {
+                string modsBasePath = ModLoader.GetModsBasePath();
+                string titleModsPath = ModLoader.GetApplicationDir(modsBasePath, viewModel.SelectedApplication.TitleId);
+
+                OpenHelper.OpenFolder(titleModsPath);
+            }
+        }
+
+        public void OpenSdModsDirectory_Click(object sender, RoutedEventArgs args)
+        {
+            var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
+
+            if (viewModel?.SelectedApplication != null)
+            {
+                string sdModsBasePath = ModLoader.GetSdModsBasePath();
+                string titleModsPath = ModLoader.GetApplicationDir(sdModsBasePath, viewModel.SelectedApplication.TitleId);
+
+                OpenHelper.OpenFolder(titleModsPath);
+            }
+        }
+
         public async void OpenModManager_Click(object sender, RoutedEventArgs args)
         {
             var viewModel = (sender as MenuItem)?.DataContext as MainWindowViewModel;
-- 
cgit v1.2.3-70-g09d2