aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Ava/App.axaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Ava/App.axaml.cs')
-rw-r--r--Ryujinx.Ava/App.axaml.cs29
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)