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/Ui/MainWindow.cs | |
parent | dc30d948520ad3bc76c8911a40d554906c9c5170 (diff) |
GUI: Add option to register file types (#4250)1.1.592
* 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/Ui/MainWindow.cs')
-rw-r--r-- | Ryujinx/Ui/MainWindow.cs | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs index 688e2f52..53a97fb9 100644 --- a/Ryujinx/Ui/MainWindow.cs +++ b/Ryujinx/Ui/MainWindow.cs @@ -44,7 +44,6 @@ using System.IO; using System.Reflection; using System.Threading; using System.Threading.Tasks; - using GUI = Gtk.Builder.ObjectAttribute; using ShaderCacheLoadingState = Ryujinx.Graphics.Gpu.Shader.ShaderCacheState; @@ -109,6 +108,7 @@ namespace Ryujinx.Ui [GUI] CheckMenuItem _favToggle; [GUI] MenuItem _firmwareInstallDirectory; [GUI] MenuItem _firmwareInstallFile; + [GUI] MenuItem _fileTypesSubMenu; [GUI] Label _fifoStatus; [GUI] CheckMenuItem _iconToggle; [GUI] CheckMenuItem _developerToggle; @@ -220,6 +220,8 @@ namespace Ryujinx.Ui _pauseEmulation.Sensitive = false; _resumeEmulation.Sensitive = false; + _fileTypesSubMenu.Visible = FileAssociationHelper.IsTypeAssociationSupported; + if (ConfigurationState.Instance.Ui.GuiColumns.FavColumn) _favToggle.Active = true; if (ConfigurationState.Instance.Ui.GuiColumns.IconColumn) _iconToggle.Active = true; if (ConfigurationState.Instance.Ui.GuiColumns.AppColumn) _appToggle.Active = true; @@ -1500,6 +1502,30 @@ namespace Ryujinx.Ui }); } + private void InstallFileTypes_Pressed(object sender, EventArgs e) + { + if (FileAssociationHelper.Install()) + { + GtkDialog.CreateInfoDialog("Install file types", "File types successfully installed!"); + } + else + { + GtkDialog.CreateErrorDialog("Failed to install file types."); + } + } + + private void UninstallFileTypes_Pressed(object sender, EventArgs e) + { + if (FileAssociationHelper.Uninstall()) + { + GtkDialog.CreateInfoDialog("Uninstall file types", "File types successfully uninstalled!"); + } + else + { + GtkDialog.CreateErrorDialog("Failed to uninstall file types."); + } + } + private void HandleRelaunch() { if (_userChannelPersistence.PreviousIndex != -1 && _userChannelPersistence.ShouldRestart) |