diff options
| author | TSRBerry <20988865+TSRBerry@users.noreply.github.com> | 2023-01-22 18:39:00 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-22 17:39:00 +0000 |
| commit | ad6ff6ce99619bb320cc7517768bca603f11a75c (patch) | |
| tree | de9c0471f6f23772408a5e90d073a1fb0998cc73 /Ryujinx.Ava/UI/Views/Main | |
| parent | dc30d948520ad3bc76c8911a40d554906c9c5170 (diff) | |
GUI: Add option to register file types (#4250)
* Add FileAssociationHelper.cs
* Add register file types option to gtk
* Add register file types option to avalonia
* Add Windows support to FileAssociationHelper.cs
* linux: Add uninstall support for file types
* Ignore .glade~ backup files
* Rename Register/Unregister methods
* gtk: Add manage file types submenu
* ava: Add manage file types submenu
* windows: Add uninstall support for file types
* Don't invert uninstall condition (formatting change)
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
* Add IsTypesRegisteredWindows & Fix Windows install function
* Add AreMimeTypesRegisteredLinux()
* Fix wrong indention
Co-authored-by: AcK77 <acoustik666@gmail.com>
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Diffstat (limited to 'Ryujinx.Ava/UI/Views/Main')
| -rw-r--r-- | Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml | 9 | ||||
| -rw-r--r-- | Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs | 28 |
2 files changed, 34 insertions, 3 deletions
diff --git a/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml b/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml index bd26561a..b1d768ea 100644 --- a/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml +++ b/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml @@ -77,8 +77,7 @@ </MenuItem.Icon> </MenuItem> <Separator /> - <MenuItem Name="ChangeLanguageMenuItem" Header="{locale:Locale MenuBarOptionsChangeLanguage}"> - </MenuItem> + <MenuItem Name="ChangeLanguageMenuItem" Header="{locale:Locale MenuBarOptionsChangeLanguage}" /> <Separator /> <MenuItem Click="OpenSettings" @@ -141,6 +140,10 @@ <MenuItem Command="{ReflectionBinding InstallFirmwareFromFile}" Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromFile}" /> <MenuItem Command="{ReflectionBinding InstallFirmwareFromFolder}" Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromDirectory}" /> </MenuItem> + <MenuItem Header="{locale:Locale MenuBarToolsManageFileTypes}" IsVisible="{Binding ManageFileTypesVisible}"> + <MenuItem Header="{locale:Locale MenuBarToolsInstallFileTypes}" Click="InstallFileTypes_Click"/> + <MenuItem Header="{locale:Locale MenuBarToolsUninstallFileTypes}" Click="UninstallFileTypes_Click"/> + </MenuItem> </MenuItem> <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarHelp}"> <MenuItem @@ -157,4 +160,4 @@ </MenuItem> </Menu> </DockPanel> -</UserControl>
\ No newline at end of file +</UserControl> diff --git a/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs b/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs index 172ab6fc..11ecd0fc 100644 --- a/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs +++ b/Ryujinx.Ava/UI/Views/Main/MainMenuBarView.axaml.cs @@ -3,6 +3,7 @@ using Avalonia.Controls; using Avalonia.Interactivity; using LibHac.FsSystem; using LibHac.Ncm; +using Ryujinx.Ava.Common.Locale; using Ryujinx.Ava.UI.Helpers; using Ryujinx.Ava.UI.ViewModels; using Ryujinx.Ava.UI.Windows; @@ -10,6 +11,7 @@ using Ryujinx.Common; using Ryujinx.Common.Utilities; using Ryujinx.HLE.HOS; using Ryujinx.Modules; +using Ryujinx.Ui.Common.Helper; using System; using System.Collections.Generic; using System.IO; @@ -163,6 +165,32 @@ namespace Ryujinx.Ava.UI.Views.Main } } + private async void InstallFileTypes_Click(object sender, RoutedEventArgs e) + { + if (FileAssociationHelper.Install()) + { + await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogInstallFileTypesSuccessMessage], + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], string.Empty, string.Empty); + } + else + { + await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogInstallFileTypesErrorMessage]); + } + } + + private async void UninstallFileTypes_Click(object sender, RoutedEventArgs e) + { + if (FileAssociationHelper.Uninstall()) + { + await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogUninstallFileTypesSuccessMessage], + string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], string.Empty, string.Empty); + } + else + { + await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogUninstallFileTypesErrorMessage]); + } + } + public async void CheckForUpdates(object sender, RoutedEventArgs e) { if (Updater.CanUpdate(true)) |
