diff options
Diffstat (limited to 'Ryujinx.Ava/App.axaml.cs')
-rw-r--r-- | Ryujinx.Ava/App.axaml.cs | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/Ryujinx.Ava/App.axaml.cs b/Ryujinx.Ava/App.axaml.cs index 6ecf0198..ef295a61 100644 --- a/Ryujinx.Ava/App.axaml.cs +++ b/Ryujinx.Ava/App.axaml.cs @@ -2,12 +2,16 @@ using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using Avalonia.Styling; +using Avalonia.Threading; using FluentAvalonia.Styling; +using Ryujinx.Ava.Common.Locale; +using Ryujinx.Ava.Ui.Controls; using Ryujinx.Ava.Ui.Windows; using Ryujinx.Common; using Ryujinx.Common.Logging; using Ryujinx.Ui.Common.Configuration; using System; +using System.Diagnostics; using System.IO; namespace Ryujinx.Ava @@ -45,7 +49,30 @@ namespace Ryujinx.Ava private void ShowRestartDialog() { - // TODO: Implement Restart Dialog when SettingsWindow is implemented. +#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed + Dispatcher.UIThread.InvokeAsync(async () => + { + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + var result = await ContentDialogHelper.CreateConfirmationDialog( + (desktop.MainWindow as MainWindow).SettingsWindow, + LocaleManager.Instance["DialogThemeRestartMessage"], + LocaleManager.Instance["DialogThemeRestartSubMessage"], + LocaleManager.Instance["InputDialogYes"], + LocaleManager.Instance["InputDialogNo"], + LocaleManager.Instance["DialogRestartRequiredMessage"]); + + if (result == UserResult.Yes) + { + var path = Process.GetCurrentProcess().MainModule.FileName; + var info = new ProcessStartInfo() { FileName = path, UseShellExecute = false }; + var proc = Process.Start(info); + desktop.Shutdown(); + Environment.Exit(0); + } + } + }); +#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed } private void ThemeChanged_Event(object sender, ReactiveEventArgs<string> e) |