aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs')
-rw-r--r--src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs69
1 files changed, 65 insertions, 4 deletions
diff --git a/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs
index 3a68cc26..fc3693ae 100644
--- a/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs
+++ b/src/Ryujinx.Ui.Common/Configuration/ConfigurationState.cs
@@ -83,6 +83,27 @@ namespace Ryujinx.Ui.Common.Configuration
}
}
+ // <summary>
+ /// Determines main window start-up position, size and state
+ ///<summary>
+ public class WindowStartupSettings
+ {
+ public ReactiveObject<int> WindowSizeWidth { get; private set; }
+ public ReactiveObject<int> WindowSizeHeight { get; private set; }
+ public ReactiveObject<int> WindowPositionX { get; private set; }
+ public ReactiveObject<int> WindowPositionY { get; private set; }
+ public ReactiveObject<bool> WindowMaximized { get; private set; }
+
+ public WindowStartupSettings()
+ {
+ WindowSizeWidth = new ReactiveObject<int>();
+ WindowSizeHeight = new ReactiveObject<int>();
+ WindowPositionX = new ReactiveObject<int>();
+ WindowPositionY = new ReactiveObject<int>();
+ WindowMaximized = new ReactiveObject<bool>();
+ }
+ }
+
/// <summary>
/// Used to toggle columns in the GUI
/// </summary>
@@ -104,6 +125,11 @@ namespace Ryujinx.Ui.Common.Configuration
public ShownFileTypeSettings ShownFileTypes { get; private set; }
/// <summary>
+ /// Determines main window start-up position, size and state
+ /// </summary>
+ public WindowStartupSettings WindowStartup { get; private set; }
+
+ /// <summary>
/// Language Code for the UI
/// </summary>
public ReactiveObject<string> LanguageCode { get; private set; }
@@ -163,7 +189,8 @@ namespace Ryujinx.Ui.Common.Configuration
GuiColumns = new Columns();
ColumnSort = new ColumnSortSettings();
GameDirs = new ReactiveObject<List<string>>();
- ShownFileTypes = new ShownFileTypeSettings();
+ ShownFileTypes = new ShownFileTypeSettings();
+ WindowStartup = new WindowStartupSettings();
EnableCustomTheme = new ReactiveObject<bool>();
CustomThemePath = new ReactiveObject<string>();
BaseStyle = new ReactiveObject<string>();
@@ -663,12 +690,12 @@ namespace Ryujinx.Ui.Common.Configuration
FileSizeColumn = Ui.GuiColumns.FileSizeColumn,
PathColumn = Ui.GuiColumns.PathColumn
},
- ColumnSort = new ColumnSort
+ ColumnSort = new ColumnSort
{
SortColumnId = Ui.ColumnSort.SortColumnId,
SortAscending = Ui.ColumnSort.SortAscending
},
- GameDirs = Ui.GameDirs,
+ GameDirs = Ui.GameDirs,
ShownFileTypes = new ShownFileTypes
{
NSP = Ui.ShownFileTypes.NSP,
@@ -678,6 +705,14 @@ namespace Ryujinx.Ui.Common.Configuration
NRO = Ui.ShownFileTypes.NRO,
NSO = Ui.ShownFileTypes.NSO,
},
+ WindowStartup = new WindowStartup
+ {
+ WindowSizeWidth = Ui.WindowStartup.WindowSizeWidth,
+ WindowSizeHeight = Ui.WindowStartup.WindowSizeHeight,
+ WindowPositionX = Ui.WindowStartup.WindowPositionX,
+ WindowPositionY = Ui.WindowStartup.WindowPositionY,
+ WindowMaximized = Ui.WindowStartup.WindowMaximized,
+ },
LanguageCode = Ui.LanguageCode,
EnableCustomTheme = Ui.EnableCustomTheme,
CustomThemePath = Ui.CustomThemePath,
@@ -781,6 +816,11 @@ namespace Ryujinx.Ui.Common.Configuration
Ui.IsAscendingOrder.Value = true;
Ui.StartFullscreen.Value = false;
Ui.ShowConsole.Value = true;
+ Ui.WindowStartup.WindowSizeWidth.Value = 1280;
+ Ui.WindowStartup.WindowSizeHeight.Value = 760;
+ Ui.WindowStartup.WindowPositionX.Value = 0;
+ Ui.WindowStartup.WindowPositionY.Value = 0;
+ Ui.WindowStartup.WindowMaximized.Value = false;
Hid.EnableKeyboard.Value = false;
Hid.EnableMouse.Value = false;
Hid.Hotkeys.Value = new KeyboardHotkeys
@@ -1334,13 +1374,29 @@ namespace Ryujinx.Ui.Common.Configuration
if (configurationFileFormat.Version < 46)
{
- Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 45.");
+ Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 46.");
configurationFileFormat.MultiplayerLanInterfaceId = "0";
configurationFileUpdated = true;
}
+ if (configurationFileFormat.Version < 47)
+ {
+ Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 47.");
+
+ configurationFileFormat.WindowStartup = new WindowStartup
+ {
+ WindowPositionX = 0,
+ WindowPositionY = 0,
+ WindowSizeHeight = 760,
+ WindowSizeWidth = 1280,
+ WindowMaximized = false,
+ };
+
+ configurationFileUpdated = true;
+ }
+
Logger.EnableFileLog.Value = configurationFileFormat.EnableFileLog;
Graphics.ResScale.Value = configurationFileFormat.ResScale;
Graphics.ResScaleCustom.Value = configurationFileFormat.ResScaleCustom;
@@ -1416,6 +1472,11 @@ namespace Ryujinx.Ui.Common.Configuration
Ui.ApplicationSort.Value = configurationFileFormat.ApplicationSort;
Ui.StartFullscreen.Value = configurationFileFormat.StartFullscreen;
Ui.ShowConsole.Value = configurationFileFormat.ShowConsole;
+ Ui.WindowStartup.WindowSizeWidth.Value = configurationFileFormat.WindowStartup.WindowSizeWidth;
+ Ui.WindowStartup.WindowSizeHeight.Value = configurationFileFormat.WindowStartup.WindowSizeHeight;
+ Ui.WindowStartup.WindowPositionX.Value = configurationFileFormat.WindowStartup.WindowPositionX;
+ Ui.WindowStartup.WindowPositionY.Value = configurationFileFormat.WindowStartup.WindowPositionY;
+ Ui.WindowStartup.WindowMaximized.Value = configurationFileFormat.WindowStartup.WindowMaximized;
Hid.EnableKeyboard.Value = configurationFileFormat.EnableKeyboard;
Hid.EnableMouse.Value = configurationFileFormat.EnableMouse;
Hid.Hotkeys.Value = configurationFileFormat.Hotkeys;