diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs index 1eb970016..b357f0d30 100644 --- a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs +++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs @@ -16,7 +16,7 @@ namespace Ryujinx.UI.Common.Configuration /// /// The current version of the file format /// - public const int CurrentVersion = 55; + public const int CurrentVersion = 56; /// /// Version of the configuration file format @@ -173,6 +173,11 @@ namespace Ryujinx.UI.Common.Configuration /// public bool RememberWindowState { get; set; } + /// + /// Enables or disables the redesigned title bar + /// + public bool ShowTitleBar { get; set; } + /// /// Enables hardware-accelerated rendering for Avalonia /// diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs index 89aaaabbe..008aac2f5 100644 --- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs +++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs @@ -652,6 +652,11 @@ namespace Ryujinx.UI.Common.Configuration /// public ReactiveObject RememberWindowState { get; private set; } + /// + /// Enables or disables the redesigned title bar + /// + public ReactiveObject ShowTitleBar { get; private set; } + /// /// Enables hardware-accelerated rendering for Avalonia /// @@ -675,6 +680,7 @@ namespace Ryujinx.UI.Common.Configuration ShowConfirmExit = new ReactiveObject(); IgnoreApplet = new ReactiveObject(); RememberWindowState = new ReactiveObject(); + ShowTitleBar = new ReactiveObject(); EnableHardwareAcceleration = new ReactiveObject(); HideCursor = new ReactiveObject(); } @@ -714,6 +720,7 @@ namespace Ryujinx.UI.Common.Configuration ShowConfirmExit = ShowConfirmExit, IgnoreApplet = IgnoreApplet, RememberWindowState = RememberWindowState, + ShowTitleBar = ShowTitleBar, EnableHardwareAcceleration = EnableHardwareAcceleration, HideCursor = HideCursor, EnableVsync = Graphics.EnableVsync, @@ -826,6 +833,7 @@ namespace Ryujinx.UI.Common.Configuration ShowConfirmExit.Value = true; IgnoreApplet.Value = false; RememberWindowState.Value = true; + ShowTitleBar.Value = false; EnableHardwareAcceleration.Value = true; HideCursor.Value = HideCursorMode.OnIdle; Graphics.EnableVsync.Value = true; @@ -1540,6 +1548,15 @@ namespace Ryujinx.UI.Common.Configuration configurationFileUpdated = true; } + if (configurationFileFormat.Version < 56) + { + Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 56."); + + configurationFileFormat.ShowTitleBar = false; + + configurationFileUpdated = true; + } + Logger.EnableFileLog.Value = configurationFileFormat.EnableFileLog; Graphics.ResScale.Value = configurationFileFormat.ResScale; Graphics.ResScaleCustom.Value = configurationFileFormat.ResScaleCustom; @@ -1572,6 +1589,7 @@ namespace Ryujinx.UI.Common.Configuration ShowConfirmExit.Value = configurationFileFormat.ShowConfirmExit; IgnoreApplet.Value = configurationFileFormat.IgnoreApplet; RememberWindowState.Value = configurationFileFormat.RememberWindowState; + ShowTitleBar.Value = configurationFileFormat.ShowTitleBar; EnableHardwareAcceleration.Value = configurationFileFormat.EnableHardwareAcceleration; HideCursor.Value = configurationFileFormat.HideCursor; Graphics.EnableVsync.Value = configurationFileFormat.EnableVsync; diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json index 26342ec4b..68b48146b 100644 --- a/src/Ryujinx/Assets/Locales/en_US.json +++ b/src/Ryujinx/Assets/Locales/en_US.json @@ -100,6 +100,7 @@ "SettingsTabGeneralCheckUpdatesOnLaunch": "Check for Updates on Launch", "SettingsTabGeneralShowConfirmExitDialog": "Show \"Confirm Exit\" Dialog", "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position", + "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)", "SettingsTabGeneralHideCursor": "Hide Cursor:", "SettingsTabGeneralHideCursorNever": "Never", "SettingsTabGeneralHideCursorOnIdle": "On Idle", diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs index ce024784e..8772b5697 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs @@ -146,6 +146,7 @@ namespace Ryujinx.Ava.UI.ViewModels public bool ShowConfirmExit { get; set; } public bool IgnoreApplet { get; set; } public bool RememberWindowState { get; set; } + public bool ShowTitleBar { get; set; } public int HideCursor { get; set; } public bool EnableDockedMode { get; set; } public bool EnableKeyboard { get; set; } @@ -410,6 +411,7 @@ namespace Ryujinx.Ava.UI.ViewModels ShowConfirmExit = config.ShowConfirmExit; IgnoreApplet = config.IgnoreApplet; RememberWindowState = config.RememberWindowState; + ShowTitleBar = config.ShowTitleBar; HideCursor = (int)config.HideCursor.Value; GameDirectories.Clear(); @@ -507,6 +509,7 @@ namespace Ryujinx.Ava.UI.ViewModels config.ShowConfirmExit.Value = ShowConfirmExit; config.IgnoreApplet.Value = IgnoreApplet; config.RememberWindowState.Value = RememberWindowState; + config.ShowTitleBar.Value = ShowTitleBar; config.HideCursor.Value = (HideCursorMode)HideCursor; if (_gameDirectoryChanged) diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml index 4e29702e6..6ee055d25 100644 --- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml +++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml @@ -13,7 +13,7 @@ - + + + +