From b2367327132791a0224e809c454b5b57f42396b8 Mon Sep 17 00:00:00 2001 From: LotP Date: Sat, 4 Jul 2026 15:30:55 +0000 Subject: [PATCH] cleanup (#161) general cleanup for some warnings in the project and some developer annoyances. Reviewed-on: https://git.ryujinx.app/projects/Ryubing/pulls/161 --- assets/Locales/Dialog_XCITrimmer.json | 16 +-- assets/Locales/GameListContextMenu.json | 6 +- assets/Locales/MenuBar_Actions.json | 2 +- assets/Locales/Root.json | 126 +++++++++--------- assets/Locales/StatusBar.json | 4 +- assets/Locales/XCITrimmer.json | 6 +- src/ARMeilleure/Common/AddressTableLevel.cs | 2 +- .../LocalesValidationTask.cs | 2 +- .../INotificationSystemEventAccessor.cs | 6 +- src/Ryujinx.Input.SDL3/NpadHdRumble.cs | 2 +- src/Ryujinx.Input/HLE/NpadController.cs | 11 +- src/Ryujinx/Common/XCITrimmerLog.cs | 4 +- .../PlayReport/PlayReports.Formatters.cs | 27 ++-- .../UI/Helpers/PhysicalKeyLabelHelper.cs | 2 +- .../UI/ViewModels/MainWindowViewModel.cs | 4 +- .../UI/ViewModels/XCITrimmerViewModel.cs | 8 +- .../UI/Views/Dialog/XCITrimmerView.axaml | 10 +- .../UI/Views/Dialog/XCITrimmerView.axaml.cs | 14 +- .../UI/Views/Main/MainMenuBarView.axaml.cs | 2 +- .../Views/Settings/SettingsInputView.axaml.cs | 2 +- 20 files changed, 130 insertions(+), 126 deletions(-) diff --git a/assets/Locales/Dialog_XCITrimmer.json b/assets/Locales/Dialog_XCITrimmer.json index 754c14947..8557b4417 100644 --- a/assets/Locales/Dialog_XCITrimmer.json +++ b/assets/Locales/Dialog_XCITrimmer.json @@ -47,7 +47,7 @@ "tr_TR": "", "uk_UA": "Файл: {0:n} МБ • Гра: {1:n} МБ\n\nЕкономія: {2:n} МБ", "zh_CN": "文件: {0:n} MB • 游戏: {1:n} MB\n\n节省: {2:n} MB", - "zh_TW": "檔案: {0:n} MB • 遊戲: {1:n} MB\n\n節省: {2:n} MB" + "zh_TW": "檔案: {0:n} MB • 遊戲: {1:n} MB\n\n節省: {2:n} MB" } }, { @@ -58,7 +58,7 @@ "el_GR": "", "en_US": "XCI does not require trimming. Check logs for details.", "es_ES": "El XCI no necesita ser recortado. Verifica los logs para detalles.", - "fr_FR": "Le XCI n’a pas besoin d’être réduit. Référez-vous aux journaux pour détails.", + "fr_FR": "Le XCI n’a pas besoin d’être réduit. Référez-vous aux journaux pour détails.", "he_IL": "", "it_IT": "Non è necessario ridurre la dimensione del XCI. Controlla i log per dettagli.", "ja_JP": "", @@ -120,7 +120,7 @@ "sv_SE": "XCI-filen är skrivskyddad och kunde inte göras skrivbar. Kontrollera loggen för mer information", "th_TH": "XCI เป็นอ่านอย่างเดียวและไม่สามารถเขียนได้ ตรวจสอบบันทึกสำหรับรายละเอียด", "tr_TR": "", - "uk_UA": "XCI тільки для читання і не можна записати. Перевірте логи для деталей.", + "uk_UA": "XCI тільки для читання і не можна записати. Перевірте логи для деталей.", "zh_CN": "XCI 只读,无法写入。查看日志以获取详情。", "zh_TW": "XCI 檔案唯讀,無法寫入。檢查日誌以取得詳情。" } @@ -133,7 +133,7 @@ "el_GR": "", "en_US": "XCI size changed since last scan. Ensure the file is not being written to and try again.", "es_ES": "El tamaño de XCI ha cambiado desde que fue escaneado. Verifica que no se esté escribiendo al archivo y vuelve a intentarlo.", - "fr_FR": "La taille de XCI a changé depuis son analyse. Vérifiez que le fichier n’est pas en cours d’écriture, puis réessayez.", + "fr_FR": "La taille de XCI a changé depuis son analyse. Vérifiez que le fichier n’est pas en cours d’écriture, puis réessayez.", "he_IL": "", "it_IT": "La dimensione di XCI è cambiata da quando è stato scansionato. Controlla che il file non sia scritto e riprova.", "ja_JP": "", @@ -166,7 +166,7 @@ "no_NO": "XCI har data i den ledige plassen. Det er ikke trygt å trimme den.", "pl_PL": "XCI zawiera dane w obszarze wolnego miejsca. Nie jest bezpieczne go przycinać.", "pt_BR": "XCI tem dados na área de espaço livre. Não é seguro reduzi-lo.", - "ru_RU": "XCI содержит данные в свободной области. Его обрезка небезопасна.", + "ru_RU": "XCI содержит данные в свободной области. Его обрезка небезопасна.", "sv_SE": "XCI har data i det lediga utrymmet. Det är inte säkert att optimera.", "th_TH": "XCI มีข้อมูลในพื้นที่ว่าง จึงไม่ปลอดภัยที่จะทำการตัดแต่ง", "tr_TR": "", @@ -216,11 +216,11 @@ "no_NO": "XCI kunne ikke åpnes for skriving. Sjekk loggene for detaljer.", "pl_PL": "Nie można otworzyć XCI do zapisu. Sprawdź dzienniki, aby uzyskać szczegóły.", "pt_BR": "XCI não pôde ser aberto para gravação. Verifique os logs para detalhes.", - "ru_RU": "Не удалось открыть XCI для записи. Проверьте журналы для подробностей.", + "ru_RU": "Не удалось открыть XCI для записи. Проверьте журналы для подробностей.", "sv_SE": "XCI kunde inte öppnas för skrivning. Kontrollera loggen för detaljer.", "th_TH": "ไม่สามารถเปิด XCI เพื่อเขียนข้อมูลได้ โปรดตรวจสอบบันทึกสำหรับรายละเอียด", "tr_TR": "", - "uk_UA": "Не вдалося відкрити XCI для запису. Перевірте журнали для деталей.", + "uk_UA": "Не вдалося відкрити XCI для запису. Перевірте журнали для деталей.", "zh_CN": "XCI 不能写入。查看日志以获得更多细节。", "zh_TW": "XCI 無法開啟以進行寫入。請檢查日誌以取得更多資訊。" } @@ -301,4 +301,4 @@ } } ] -} \ No newline at end of file +} diff --git a/assets/Locales/GameListContextMenu.json b/assets/Locales/GameListContextMenu.json index 2ed75db6b..52fee5164 100644 --- a/assets/Locales/GameListContextMenu.json +++ b/assets/Locales/GameListContextMenu.json @@ -3,7 +3,7 @@ { "ID": "TrimXCIButton", "Translations": { - "ar_SA": "تقليم XCI", + "ar_SA": "تقليم XCI", "de_DE": "Zuschneiden der XCI", "el_GR": "Κοπή XCI", "en_US": "Trim XCI", @@ -19,11 +19,11 @@ "ru_RU": "Обрезать XCI", "sv_SE": "Optimera XCI", "th_TH": "ลดขนาด XCI", - "tr_TR": "XCI'yi Kırp", + "tr_TR": "XCI'yi Kırp", "uk_UA": "Нарізка XCI", "zh_CN": "精简 XCI", "zh_TW": "修剪 XCI" } } ] -} \ No newline at end of file +} diff --git a/assets/Locales/MenuBar_Actions.json b/assets/Locales/MenuBar_Actions.json index 95334b571..1d0f97d4c 100644 --- a/assets/Locales/MenuBar_Actions.json +++ b/assets/Locales/MenuBar_Actions.json @@ -228,7 +228,7 @@ { "ID": "XCITrimmerButton", "Translations": { - "ar_SA": "", + "ar_SA": "", "de_DE": "XCI-Trimmer", "el_GR": "", "en_US": "XCI Trimmer", diff --git a/assets/Locales/Root.json b/assets/Locales/Root.json index d5e0d91fb..f2a827bb3 100644 --- a/assets/Locales/Root.json +++ b/assets/Locales/Root.json @@ -1,4 +1,4 @@ -{ +{ "Locales": [ { "ID": "SettingsTabInputDirectMouseAccess", @@ -11425,11 +11425,11 @@ "zh_TW": "目前控制器設定已更新。" } }, - { - "ID": "DialogControllerSettingsModifiedConfirmSubMessage", - "Translations": { - "ar_SA": "هل تريد الحفظ ؟", - "de_DE": "Controller-Einstellungen speichern?", + { + "ID": "DialogControllerSettingsModifiedConfirmSubMessage", + "Translations": { + "ar_SA": "هل تريد الحفظ ؟", + "de_DE": "Controller-Einstellungen speichern?", "el_GR": "Θέλετε να αποθηκεύσετε;", "en_US": "Do you want to save?", "es_ES": "¿Guardar cambios?", @@ -11446,63 +11446,63 @@ "th_TH": "คุณต้องการบันทึกหรือไม่?", "tr_TR": "Kaydetmek istiyor musunuz?", "uk_UA": "Ви хочете зберегти?", - "zh_CN": "是否保存?", - "zh_TW": "您想要儲存嗎?" - } - }, - { - "ID": "DialogControllerSettingsResetKeybindsConfirmMessage", - "Translations": { - "ar_SA": "", - "de_DE": "", - "el_GR": "", - "en_US": "Reset the selected device keybinds to their default values?", - "es_ES": "¿Restablecer las asignaciones del dispositivo seleccionado a sus valores predeterminados?", - "fr_FR": "Réinitialiser les assignations du périphérique sélectionné à leurs valeurs par défaut ?", - "he_IL": "", - "it_IT": "", - "ja_JP": "", - "ko_KR": "", - "no_NO": "", - "pl_PL": "", - "pt_BR": "", - "ru_RU": "", - "sv_SE": "", - "th_TH": "", - "tr_TR": "", - "uk_UA": "", - "zh_CN": "要将选定设备的按键绑定重置为默认值吗?", - "zh_TW": "" - } - }, - { - "ID": "DialogControllerSettingsResetKeybindsConfirmSubMessage", - "Translations": { - "ar_SA": "", - "de_DE": "", - "el_GR": "", - "en_US": "This is a destructive action and will overwrite the current bindings for this device.", - "es_ES": "Esta acción es destructiva y sobrescribirá las asignaciones actuales de este dispositivo.", - "fr_FR": "Cette action est destructive et écrasera les assignations actuelles de ce périphérique.", - "he_IL": "", - "it_IT": "", - "ja_JP": "", - "ko_KR": "", - "no_NO": "", - "pl_PL": "", - "pt_BR": "", - "ru_RU": "", - "sv_SE": "", - "th_TH": "", - "tr_TR": "", - "uk_UA": "", - "zh_CN": "这是一个破坏性的操作,会覆盖此设备当前的绑定。", - "zh_TW": "" - } - }, - { - "ID": "DialogLoadFileErrorMessage", - "Translations": { + "zh_CN": "是否保存?", + "zh_TW": "您想要儲存嗎?" + } + }, + { + "ID": "DialogControllerSettingsResetKeybindsConfirmMessage", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "Reset the selected device keybinds to their default values?", + "es_ES": "¿Restablecer las asignaciones del dispositivo seleccionado a sus valores predeterminados?", + "fr_FR": "Réinitialiser les assignations du périphérique sélectionné à leurs valeurs par défaut ?", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "", + "pl_PL": "", + "pt_BR": "", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "要将选定设备的按键绑定重置为默认值吗?", + "zh_TW": "" + } + }, + { + "ID": "DialogControllerSettingsResetKeybindsConfirmSubMessage", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "This is a destructive action and will overwrite the current bindings for this device.", + "es_ES": "Esta acción es destructiva y sobrescribirá las asignaciones actuales de este dispositivo.", + "fr_FR": "Cette action est destructive et écrasera les assignations actuelles de ce périphérique.", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "", + "pl_PL": "", + "pt_BR": "", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "这是一个破坏性的操作,会覆盖此设备当前的绑定。", + "zh_TW": "" + } + }, + { + "ID": "DialogLoadFileErrorMessage", + "Translations": { "ar_SA": "{0}. ملف خاطئ: {1}", "de_DE": "{0}. Fehlerhafte Datei: {1}", "el_GR": "", diff --git a/assets/Locales/StatusBar.json b/assets/Locales/StatusBar.json index d308cc848..2ffe565e3 100644 --- a/assets/Locales/StatusBar.json +++ b/assets/Locales/StatusBar.json @@ -1,6 +1,6 @@ { "Locales": [ - { + { "ID": "TrimmingXCILabel", "Translations": { "ar_SA": "جاري تقليم: {0}", @@ -19,7 +19,7 @@ "ru_RU": "Обрезка: {0}", "sv_SE": "Trimmar: {0}", "th_TH": "กำลังตัด: {0}", - "tr_TR": "{0} Kısaltılıyor:", + "tr_TR": "{0} Kısaltılıyor:", "uk_UA": "Обрізка: {0}", "zh_CN": "正在修剪: {0}", "zh_TW": "正在修剪: {0}" diff --git a/assets/Locales/XCITrimmer.json b/assets/Locales/XCITrimmer.json index 6ebaf288e..7eec4fe5d 100644 --- a/assets/Locales/XCITrimmer.json +++ b/assets/Locales/XCITrimmer.json @@ -48,7 +48,7 @@ "uk_UA": "Вибрано XCI: {0}/{1} (Відображається: {2})", "zh_CN": "XCI 已选: {0}/{1}(显示: {2})", "zh_TW": "XCI 已選擇: {0}/{1}(顯示: {2})" - } + } }, { "ID": "StatusTrimmingLabel", @@ -103,7 +103,7 @@ { "ID": "SelectAllButton", "Translations": { - "ar_SA": "اختر الكل", + "ar_SA": "اختر الكل", "de_DE": "Alles auswählen", "el_GR": "Επιλογή όλων", "en_US": "Select All", @@ -366,7 +366,7 @@ "no_NO": null, "pl_PL": null, "pt_BR": null, - "ru_RU": "{0} МБ", + "ru_RU": "{0} МБ", "sv_SE": null, "th_TH": null, "tr_TR": null, diff --git a/src/ARMeilleure/Common/AddressTableLevel.cs b/src/ARMeilleure/Common/AddressTableLevel.cs index af3b9b99f..58cfe21ed 100644 --- a/src/ARMeilleure/Common/AddressTableLevel.cs +++ b/src/ARMeilleure/Common/AddressTableLevel.cs @@ -6,7 +6,7 @@ namespace ARMeilleure.Common public readonly struct AddressTableLevel { /// - /// Gets the index of the in the guest address. + /// Gets the index of the in the guest address. /// public int Index { get; } diff --git a/src/Ryujinx.BuildValidationTasks/LocalesValidationTask.cs b/src/Ryujinx.BuildValidationTasks/LocalesValidationTask.cs index 24a318be4..65808174f 100644 --- a/src/Ryujinx.BuildValidationTasks/LocalesValidationTask.cs +++ b/src/Ryujinx.BuildValidationTasks/LocalesValidationTask.cs @@ -128,7 +128,7 @@ namespace Ryujinx.BuildValidationTasks using (StreamWriter sw = new(path)) { - sw.Write(jsonString); + sw.Write($"{jsonString}\n"); } } diff --git a/src/Ryujinx.HLE/HOS/Services/Notification/INotificationSystemEventAccessor.cs b/src/Ryujinx.HLE/HOS/Services/Notification/INotificationSystemEventAccessor.cs index 8cca7cc6e..8af014be8 100644 --- a/src/Ryujinx.HLE/HOS/Services/Notification/INotificationSystemEventAccessor.cs +++ b/src/Ryujinx.HLE/HOS/Services/Notification/INotificationSystemEventAccessor.cs @@ -11,7 +11,11 @@ namespace Ryujinx.HLE.HOS.Services.Notification private readonly KEvent _getNotificationSendingNotifierEvent; private int _getNotificationSendingNotifierEventHandle; - public INotificationSystemEventAccessor(ServiceCtx context) { } + + public INotificationSystemEventAccessor(ServiceCtx context) + { + _getNotificationSendingNotifierEvent = new KEvent(context.Device.System.KernelContext); + } [CommandCmif(0)] // 9.0.0+ // GetNotificationSendingNotifier() -> nn::notification::server::INotificationSystemEventAccessor diff --git a/src/Ryujinx.Input.SDL3/NpadHdRumble.cs b/src/Ryujinx.Input.SDL3/NpadHdRumble.cs index 55d83e69c..0356df172 100644 --- a/src/Ryujinx.Input.SDL3/NpadHdRumble.cs +++ b/src/Ryujinx.Input.SDL3/NpadHdRumble.cs @@ -41,7 +41,7 @@ namespace Ryujinx.Input.SDL3 } int serialNumber = 0; - string? serial = SDL_GetGamepadSerial(gamepadHandle); + string serial = SDL_GetGamepadSerial(gamepadHandle); if (serial is not null) { int.TryParse(serial, out serialNumber); diff --git a/src/Ryujinx.Input/HLE/NpadController.cs b/src/Ryujinx.Input/HLE/NpadController.cs index ed5a5e082..720857bc3 100644 --- a/src/Ryujinx.Input/HLE/NpadController.cs +++ b/src/Ryujinx.Input/HLE/NpadController.cs @@ -767,8 +767,9 @@ namespace Ryujinx.Input.HLE { foreach (AssignedInputDevice assignedController in assignedControllers) { - foreach (string gamepadId in gamepadDriver.GamepadsIds) + for (int index = 0; index < gamepadDriver.GamepadsIds.Length; index++) { + string gamepadId = gamepadDriver.GamepadsIds[index]; if (string.Equals(gamepadId, assignedController.Id, StringComparison.Ordinal)) { yield return assignedController; @@ -782,14 +783,14 @@ namespace Ryujinx.Input.HLE if (config is StandardControllerInputConfig) { - foreach (string gamepadId in gamepadDriver.GamepadsIds) + for (int index = 0; index < gamepadDriver.GamepadsIds.Length; index++) { + string gamepadId = gamepadDriver.GamepadsIds[index]; if (string.Equals(gamepadId, config.Id, StringComparison.Ordinal)) { yield return new AssignedInputDevice { - Type = AssignedInputDeviceType.Controller, - Id = gamepadId, + Type = AssignedInputDeviceType.Controller, Id = gamepadId, }; yield break; } @@ -1092,7 +1093,7 @@ namespace Ryujinx.Input.HLE : _assignedControllerConfigs.FirstOrDefault(), _controllerDriver ), - _ => ((IGamepad?)null, (InputConfig?)null, (IGamepadDriver?)null) + _ => ((IGamepad)null, (InputConfig)null, (IGamepadDriver)null) }; _controllerGamepad = _gamepad; diff --git a/src/Ryujinx/Common/XCITrimmerLog.cs b/src/Ryujinx/Common/XCITrimmerLog.cs index 6039ef9f9..3f840abba 100644 --- a/src/Ryujinx/Common/XCITrimmerLog.cs +++ b/src/Ryujinx/Common/XCITrimmerLog.cs @@ -26,9 +26,9 @@ namespace Ryujinx.Ava.Common internal class TrimmerWindow : Ryujinx.Common.Logging.XCIFileTrimmerLog { - private readonly XCITrimmerViewModel _viewModel; + private readonly XciTrimmerViewModel _viewModel; - public TrimmerWindow(XCITrimmerViewModel viewModel) + public TrimmerWindow(XciTrimmerViewModel viewModel) { _viewModel = viewModel; } diff --git a/src/Ryujinx/Systems/PlayReport/PlayReports.Formatters.cs b/src/Ryujinx/Systems/PlayReport/PlayReports.Formatters.cs index 043eb1bdc..3ff493b45 100644 --- a/src/Ryujinx/Systems/PlayReport/PlayReports.Formatters.cs +++ b/src/Ryujinx/Systems/PlayReport/PlayReports.Formatters.cs @@ -1105,7 +1105,7 @@ namespace Ryujinx.Ava.Systems.PlayReport return $"At the main menu"; - static string LocFinal(string? location) => location switch + static string LocFinal(string location) => location switch { "0" => "Somewhere in Miitopia", "1" => "Wandering around Greenhorne", @@ -1151,8 +1151,10 @@ namespace Ryujinx.Ava.Systems.PlayReport { return "At the main menu"; } - - static string MarioOrLuigiGamemode(string? gamemode) => gamemode switch + + return ""; + + static string MarioOrLuigiGamemode(string gamemode) => gamemode switch { "0" => "mario", "1" => "luigi", @@ -1161,14 +1163,14 @@ namespace Ryujinx.Ava.Systems.PlayReport _ => gamemode }; - static string OtherGameMode(string? gamemode) => gamemode switch - { - "2" => "Boost Rush", - "3" => "Challenges", - "4" => "Coin Battle", - "5" => "Coin Battle Editor", - _ => "" - }; + // static string OtherGameMode(string gamemode) => gamemode switch + // { + // "2" => "Boost Rush", + // "3" => "Challenges", + // "4" => "Coin Battle", + // "5" => "Coin Battle Editor", + // _ => "" + // }; static string SpecialMapNames(int? course) => course switch { @@ -1196,9 +1198,6 @@ namespace Ryujinx.Ava.Systems.PlayReport // Glacier seals = 16, water leaf = 15 // desert ice = 14, acorn squid = 13 // all other course numbers are to be considered a hazard - - return ""; - } } } diff --git a/src/Ryujinx/UI/Helpers/PhysicalKeyLabelHelper.cs b/src/Ryujinx/UI/Helpers/PhysicalKeyLabelHelper.cs index 89a1e891b..07c4f2ccd 100644 --- a/src/Ryujinx/UI/Helpers/PhysicalKeyLabelHelper.cs +++ b/src/Ryujinx/UI/Helpers/PhysicalKeyLabelHelper.cs @@ -108,7 +108,7 @@ namespace Ryujinx.Ava.UI.Helpers try { string labelsJson = File.ReadAllText(labelsPath); - Dictionary? labels = JsonSerializer.Deserialize>(labelsJson, _serializerOptions); + Dictionary labels = JsonSerializer.Deserialize>(labelsJson, _serializerOptions); if (labels != null) { diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index f71c3e908..a848d70ed 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -1767,7 +1767,7 @@ namespace Ryujinx.Ava.UI.ViewModels } } - private async Task?> PickFolders(LocaleKeys titleKey) + private async Task> PickFolders(LocaleKeys titleKey) { return (await StorageProvider.OpenMultiFolderPickerAsync(new FolderPickerOpenOptions { @@ -2161,7 +2161,7 @@ namespace Ryujinx.Ava.UI.ViewModels Window.Position.X + (int)(Window.Bounds.Width / 2), Window.Position.Y + (int)(Window.Bounds.Height / 2)); - Avalonia.Platform.Screen? screen = + Avalonia.Platform.Screen screen = Window.Screens.ScreenFromVisual(Window) ?? Window.Screens.ScreenFromPoint(windowCenter) ?? Window.Screens.Primary; diff --git a/src/Ryujinx/UI/ViewModels/XCITrimmerViewModel.cs b/src/Ryujinx/UI/ViewModels/XCITrimmerViewModel.cs index 187dff624..8deffba57 100644 --- a/src/Ryujinx/UI/ViewModels/XCITrimmerViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/XCITrimmerViewModel.cs @@ -16,7 +16,7 @@ using static Ryujinx.Common.Utilities.XCIFileTrimmer; namespace Ryujinx.Ava.UI.ViewModels { - public class XCITrimmerViewModel : BaseModel + public class XciTrimmerViewModel : BaseModel { private const long BytesPerMb = 1024 * 1024; @@ -49,7 +49,7 @@ namespace Ryujinx.Ava.UI.ViewModels private int _processingTotal; - public XCITrimmerViewModel(MainWindowViewModel mainWindowViewModel) + public XciTrimmerViewModel(MainWindowViewModel mainWindowViewModel) { _logger = new XCITrimmerLog.TrimmerWindow(this); _mainWindowViewModel = mainWindowViewModel; @@ -299,9 +299,9 @@ namespace Ryujinx.Ava.UI.ViewModels private class CompareXCITrimmerFiles : IComparer { - private readonly XCITrimmerViewModel _viewModel; + private readonly XciTrimmerViewModel _viewModel; - public CompareXCITrimmerFiles(XCITrimmerViewModel ViewModel) + public CompareXCITrimmerFiles(XciTrimmerViewModel ViewModel) { _viewModel = ViewModel; } diff --git a/src/Ryujinx/UI/Views/Dialog/XCITrimmerView.axaml b/src/Ryujinx/UI/Views/Dialog/XCITrimmerView.axaml index 54a485b19..601a7f3dd 100644 --- a/src/Ryujinx/UI/Views/Dialog/XCITrimmerView.axaml +++ b/src/Ryujinx/UI/Views/Dialog/XCITrimmerView.axaml @@ -1,5 +1,5 @@ @@ -121,7 +121,7 @@ HorizontalAlignment="Stretch" VerticalAlignment="Center" CornerRadius="5" - IsVisible="{Binding $parent[UserControl].DataContext.Processing}" + IsVisible="{Binding !$parent[UserControl].((viewModels:XciTrimmerViewModel)DataContext).Processing}" Maximum="100" Minimum="0" Value="{Binding PercentageProgress}" /> @@ -131,7 +131,7 @@ HorizontalAlignment="Right" VerticalAlignment="Center" MaxLines="1" - IsVisible="{Binding !$parent[UserControl].DataContext.Processing}" + IsVisible="{Binding !$parent[UserControl].((viewModels:XciTrimmerViewModel)DataContext).Processing}" Text="{Binding ., Converter={x:Static helpers:XCITrimmerFileSpaceSavingsConverter.Instance}}" /> @@ -182,4 +182,4 @@ - \ No newline at end of file + diff --git a/src/Ryujinx/UI/Views/Dialog/XCITrimmerView.axaml.cs b/src/Ryujinx/UI/Views/Dialog/XCITrimmerView.axaml.cs index 1e003aeec..d75ba9283 100644 --- a/src/Ryujinx/UI/Views/Dialog/XCITrimmerView.axaml.cs +++ b/src/Ryujinx/UI/Views/Dialog/XCITrimmerView.axaml.cs @@ -11,16 +11,16 @@ using System.Threading.Tasks; namespace Ryujinx.Ava.UI.Views.Dialog { - public partial class XCITrimmerView : RyujinxControl + public partial class XciTrimmerView : RyujinxControl { - public XCITrimmerView() + public XciTrimmerView() { InitializeComponent(); } private void ToggleSelect(object sender, RoutedEventArgs e) { - if (DataContext is XCITrimmerViewModel vm) + if (DataContext is XciTrimmerViewModel vm) vm.ToggleSelect(); } @@ -31,9 +31,9 @@ namespace Ryujinx.Ava.UI.Views.Dialog PrimaryButtonText = string.Empty, SecondaryButtonText = string.Empty, CloseButtonText = string.Empty, - Content = new XCITrimmerView + Content = new XciTrimmerView { - ViewModel = new XCITrimmerViewModel(RyujinxApp.MainWindow.ViewModel) + ViewModel = new XciTrimmerViewModel(RyujinxApp.MainWindow.ViewModel) }, Title = LocaleManager.Instance[LocaleKeys.MenuBar_Actions_XCITrimmerButton] }; @@ -58,7 +58,7 @@ namespace Ryujinx.Ava.UI.Views.Dialog private void Close(object sender, RoutedEventArgs e) { - ((ContentDialog)Parent).Hide(); + ((ContentDialog)Parent!).Hide(); } private void Cancel(Object sender, RoutedEventArgs e) @@ -69,7 +69,7 @@ namespace Ryujinx.Ava.UI.Views.Dialog public void Sort_Checked(object sender, RoutedEventArgs args) { if (sender is RadioButton { Tag: string sortField }) - ViewModel.SortingField = Enum.Parse(sortField); + ViewModel.SortingField = Enum.Parse(sortField); } public void Order_Checked(object sender, RoutedEventArgs args) diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs index 5ad7b6bd2..6ce73088c 100644 --- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs +++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs @@ -43,7 +43,7 @@ namespace Ryujinx.Ava.UI.Views.Main ResumeEmulationMenuItem.Command = Commands.Create(() => ViewModel.AppHost?.Resume()); StopEmulationMenuItem.Command = Commands.Create(() => ViewModel.AppHost?.ShowExitPrompt().OrCompleted()); RestartEmulationMenuItem.Command = Commands.Create(() => ViewModel.RestartEmulation()); - XCITrimmerMenuItem.Command = Commands.Create(XCITrimmerView.Show); + XCITrimmerMenuItem.Command = Commands.Create(XciTrimmerView.Show); AboutWindowMenuItem.Command = Commands.Create(AboutView.Show); CompatibilityListMenuItem.Command = Commands.Create(() => CompatibilityListWindow.Show()); LdnGameListMenuItem.Command = Commands.Create(() => LdnGamesListWindow.Show()); diff --git a/src/Ryujinx/UI/Views/Settings/SettingsInputView.axaml.cs b/src/Ryujinx/UI/Views/Settings/SettingsInputView.axaml.cs index 4ab7b181d..c72cdfa61 100644 --- a/src/Ryujinx/UI/Views/Settings/SettingsInputView.axaml.cs +++ b/src/Ryujinx/UI/Views/Settings/SettingsInputView.axaml.cs @@ -44,7 +44,7 @@ namespace Ryujinx.Ava.UI.Views.Settings return; } - MainWindow? mainWindow = RyujinxApp.MainWindow; + MainWindow mainWindow = RyujinxApp.MainWindow; if (mainWindow?.ViewModel?.AppHost?.NpadManager is not { } npadManager) { return;