aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx/Ui/MainWindow.cs
diff options
context:
space:
mode:
authorTSRBerry <20988865+TSRBerry@users.noreply.github.com>2023-01-22 18:39:00 +0100
committerGitHub <noreply@github.com>2023-01-22 17:39:00 +0000
commitad6ff6ce99619bb320cc7517768bca603f11a75c (patch)
treede9c0471f6f23772408a5e90d073a1fb0998cc73 /Ryujinx/Ui/MainWindow.cs
parentdc30d948520ad3bc76c8911a40d554906c9c5170 (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.cs28
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)