general cleanup for some warnings in the project and some developer annoyances.

Reviewed-on: https://git.ryujinx.app/projects/Ryubing/pulls/161
This commit is contained in:
LotP
2026-07-04 15:30:55 +00:00
committed by LotP
parent 97aed15d19
commit b236732713
20 changed files with 130 additions and 126 deletions

View File

@@ -58,7 +58,7 @@
"el_GR": "", "el_GR": "",
"en_US": "XCI does not require trimming. Check logs for details.", "en_US": "XCI does not require trimming. Check logs for details.",
"es_ES": "El XCI no necesita ser recortado. Verifica los logs para detalles.", "es_ES": "El XCI no necesita ser recortado. Verifica los logs para detalles.",
"fr_FR": "Le XCI na pas besoin dêtre réduit. Référez-vous aux journaux pour détails.", "fr_FR": "Le XCI na pas besoin dêtre réduit. Référez-vous aux journaux pour détails.",
"he_IL": "", "he_IL": "",
"it_IT": "Non è necessario ridurre la dimensione del XCI. Controlla i log per dettagli.", "it_IT": "Non è necessario ridurre la dimensione del XCI. Controlla i log per dettagli.",
"ja_JP": "", "ja_JP": "",
@@ -120,7 +120,7 @@
"sv_SE": "XCI-filen är skrivskyddad och kunde inte göras skrivbar. Kontrollera loggen för mer information", "sv_SE": "XCI-filen är skrivskyddad och kunde inte göras skrivbar. Kontrollera loggen för mer information",
"th_TH": "XCI เป็นอ่านอย่างเดียวและไม่สามารถเขียนได้ ตรวจสอบบันทึกสำหรับรายละเอียด", "th_TH": "XCI เป็นอ่านอย่างเดียวและไม่สามารถเขียนได้ ตรวจสอบบันทึกสำหรับรายละเอียด",
"tr_TR": "", "tr_TR": "",
"uk_UA": "XCI тільки для читання і не можна записати. Перевірте логи для деталей.", "uk_UA": "XCI тільки для читання і не можна записати. Перевірте логи для деталей.",
"zh_CN": "XCI 只读,无法写入。查看日志以获取详情。", "zh_CN": "XCI 只读,无法写入。查看日志以获取详情。",
"zh_TW": "XCI 檔案唯讀,無法寫入。檢查日誌以取得詳情。" "zh_TW": "XCI 檔案唯讀,無法寫入。檢查日誌以取得詳情。"
} }
@@ -133,7 +133,7 @@
"el_GR": "", "el_GR": "",
"en_US": "XCI size changed since last scan. Ensure the file is not being written to and try again.", "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.", "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 nest pas en cours décriture, puis réessayez.", "fr_FR": "La taille de XCI a changé depuis son analyse. Vérifiez que le fichier nest pas en cours décriture, puis réessayez.",
"he_IL": "", "he_IL": "",
"it_IT": "La dimensione di XCI è cambiata da quando è stato scansionato. Controlla che il file non sia scritto e riprova.", "it_IT": "La dimensione di XCI è cambiata da quando è stato scansionato. Controlla che il file non sia scritto e riprova.",
"ja_JP": "", "ja_JP": "",
@@ -166,7 +166,7 @@
"no_NO": "XCI har data i den ledige plassen. Det er ikke trygt å trimme den.", "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ć.", "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.", "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.", "sv_SE": "XCI har data i det lediga utrymmet. Det är inte säkert att optimera.",
"th_TH": "XCI มีข้อมูลในพื้นที่ว่าง จึงไม่ปลอดภัยที่จะทำการตัดแต่ง", "th_TH": "XCI มีข้อมูลในพื้นที่ว่าง จึงไม่ปลอดภัยที่จะทำการตัดแต่ง",
"tr_TR": "", "tr_TR": "",
@@ -216,11 +216,11 @@
"no_NO": "XCI kunne ikke åpnes for skriving. Sjekk loggene for detaljer.", "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.", "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.", "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.", "sv_SE": "XCI kunde inte öppnas för skrivning. Kontrollera loggen för detaljer.",
"th_TH": "ไม่สามารถเปิด XCI เพื่อเขียนข้อมูลได้ โปรดตรวจสอบบันทึกสำหรับรายละเอียด", "th_TH": "ไม่สามารถเปิด XCI เพื่อเขียนข้อมูลได้ โปรดตรวจสอบบันทึกสำหรับรายละเอียด",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Не вдалося відкрити XCI для запису. Перевірте журнали для деталей.", "uk_UA": "Не вдалося відкрити XCI для запису. Перевірте журнали для деталей.",
"zh_CN": "XCI 不能写入。查看日志以获得更多细节。", "zh_CN": "XCI 不能写入。查看日志以获得更多细节。",
"zh_TW": "XCI 無法開啟以進行寫入。請檢查日誌以取得更多資訊。" "zh_TW": "XCI 無法開啟以進行寫入。請檢查日誌以取得更多資訊。"
} }

View File

@@ -3,7 +3,7 @@
{ {
"ID": "TrimXCIButton", "ID": "TrimXCIButton",
"Translations": { "Translations": {
"ar_SA": "تقليم XCI", "ar_SA": "تقليم XCI",
"de_DE": "Zuschneiden der XCI", "de_DE": "Zuschneiden der XCI",
"el_GR": "Κοπή XCI", "el_GR": "Κοπή XCI",
"en_US": "Trim XCI", "en_US": "Trim XCI",
@@ -19,7 +19,7 @@
"ru_RU": "Обрезать XCI", "ru_RU": "Обрезать XCI",
"sv_SE": "Optimera XCI", "sv_SE": "Optimera XCI",
"th_TH": "ลดขนาด XCI", "th_TH": "ลดขนาด XCI",
"tr_TR": "XCI'yi Kırp", "tr_TR": "XCI'yi Kırp",
"uk_UA": "Нарізка XCI", "uk_UA": "Нарізка XCI",
"zh_CN": "精简 XCI", "zh_CN": "精简 XCI",
"zh_TW": "修剪 XCI" "zh_TW": "修剪 XCI"

View File

@@ -228,7 +228,7 @@
{ {
"ID": "XCITrimmerButton", "ID": "XCITrimmerButton",
"Translations": { "Translations": {
"ar_SA": "", "ar_SA": "",
"de_DE": "XCI-Trimmer", "de_DE": "XCI-Trimmer",
"el_GR": "", "el_GR": "",
"en_US": "XCI Trimmer", "en_US": "XCI Trimmer",

View File

@@ -1,4 +1,4 @@
{ {
"Locales": [ "Locales": [
{ {
"ID": "SettingsTabInputDirectMouseAccess", "ID": "SettingsTabInputDirectMouseAccess",
@@ -11425,11 +11425,11 @@
"zh_TW": "目前控制器設定已更新。" "zh_TW": "目前控制器設定已更新。"
} }
}, },
{ {
"ID": "DialogControllerSettingsModifiedConfirmSubMessage", "ID": "DialogControllerSettingsModifiedConfirmSubMessage",
"Translations": { "Translations": {
"ar_SA": "هل تريد الحفظ ؟", "ar_SA": "هل تريد الحفظ ؟",
"de_DE": "Controller-Einstellungen speichern?", "de_DE": "Controller-Einstellungen speichern?",
"el_GR": "Θέλετε να αποθηκεύσετε;", "el_GR": "Θέλετε να αποθηκεύσετε;",
"en_US": "Do you want to save?", "en_US": "Do you want to save?",
"es_ES": "¿Guardar cambios?", "es_ES": "¿Guardar cambios?",
@@ -11446,63 +11446,63 @@
"th_TH": "คุณต้องการบันทึกหรือไม่?", "th_TH": "คุณต้องการบันทึกหรือไม่?",
"tr_TR": "Kaydetmek istiyor musunuz?", "tr_TR": "Kaydetmek istiyor musunuz?",
"uk_UA": "Ви хочете зберегти?", "uk_UA": "Ви хочете зберегти?",
"zh_CN": "是否保存?", "zh_CN": "是否保存?",
"zh_TW": "您想要儲存嗎?" "zh_TW": "您想要儲存嗎?"
} }
}, },
{ {
"ID": "DialogControllerSettingsResetKeybindsConfirmMessage", "ID": "DialogControllerSettingsResetKeybindsConfirmMessage",
"Translations": { "Translations": {
"ar_SA": "", "ar_SA": "",
"de_DE": "", "de_DE": "",
"el_GR": "", "el_GR": "",
"en_US": "Reset the selected device keybinds to their default values?", "en_US": "Reset the selected device keybinds to their default values?",
"es_ES": "¿Restablecer las asignaciones del dispositivo seleccionado a sus valores predeterminados?", "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 ?", "fr_FR": "Réinitialiser les assignations du périphérique sélectionné à leurs valeurs par défaut ?",
"he_IL": "", "he_IL": "",
"it_IT": "", "it_IT": "",
"ja_JP": "", "ja_JP": "",
"ko_KR": "", "ko_KR": "",
"no_NO": "", "no_NO": "",
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "", "ru_RU": "",
"sv_SE": "", "sv_SE": "",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "", "uk_UA": "",
"zh_CN": "要将选定设备的按键绑定重置为默认值吗?", "zh_CN": "要将选定设备的按键绑定重置为默认值吗?",
"zh_TW": "" "zh_TW": ""
} }
}, },
{ {
"ID": "DialogControllerSettingsResetKeybindsConfirmSubMessage", "ID": "DialogControllerSettingsResetKeybindsConfirmSubMessage",
"Translations": { "Translations": {
"ar_SA": "", "ar_SA": "",
"de_DE": "", "de_DE": "",
"el_GR": "", "el_GR": "",
"en_US": "This is a destructive action and will overwrite the current bindings for this device.", "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.", "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.", "fr_FR": "Cette action est destructive et écrasera les assignations actuelles de ce périphérique.",
"he_IL": "", "he_IL": "",
"it_IT": "", "it_IT": "",
"ja_JP": "", "ja_JP": "",
"ko_KR": "", "ko_KR": "",
"no_NO": "", "no_NO": "",
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "", "ru_RU": "",
"sv_SE": "", "sv_SE": "",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "", "uk_UA": "",
"zh_CN": "这是一个破坏性的操作,会覆盖此设备当前的绑定。", "zh_CN": "这是一个破坏性的操作,会覆盖此设备当前的绑定。",
"zh_TW": "" "zh_TW": ""
} }
}, },
{ {
"ID": "DialogLoadFileErrorMessage", "ID": "DialogLoadFileErrorMessage",
"Translations": { "Translations": {
"ar_SA": "{0}. ملف خاطئ: {1}", "ar_SA": "{0}. ملف خاطئ: {1}",
"de_DE": "{0}. Fehlerhafte Datei: {1}", "de_DE": "{0}. Fehlerhafte Datei: {1}",
"el_GR": "", "el_GR": "",

View File

@@ -1,6 +1,6 @@
{ {
"Locales": [ "Locales": [
{ {
"ID": "TrimmingXCILabel", "ID": "TrimmingXCILabel",
"Translations": { "Translations": {
"ar_SA": "جاري تقليم: {0}", "ar_SA": "جاري تقليم: {0}",
@@ -19,7 +19,7 @@
"ru_RU": "Обрезка: {0}", "ru_RU": "Обрезка: {0}",
"sv_SE": "Trimmar: {0}", "sv_SE": "Trimmar: {0}",
"th_TH": "กำลังตัด: {0}", "th_TH": "กำลังตัด: {0}",
"tr_TR": "{0} Kısaltılıyor:", "tr_TR": "{0} Kısaltılıyor:",
"uk_UA": "Обрізка: {0}", "uk_UA": "Обрізка: {0}",
"zh_CN": "正在修剪: {0}", "zh_CN": "正在修剪: {0}",
"zh_TW": "正在修剪: {0}" "zh_TW": "正在修剪: {0}"

View File

@@ -48,7 +48,7 @@
"uk_UA": "Вибрано XCI: {0}/{1} (Відображається: {2})", "uk_UA": "Вибрано XCI: {0}/{1} (Відображається: {2})",
"zh_CN": "XCI 已选: {0}/{1}(显示: {2}", "zh_CN": "XCI 已选: {0}/{1}(显示: {2}",
"zh_TW": "XCI 已選擇: {0}/{1}(顯示: {2}" "zh_TW": "XCI 已選擇: {0}/{1}(顯示: {2}"
} }
}, },
{ {
"ID": "StatusTrimmingLabel", "ID": "StatusTrimmingLabel",
@@ -103,7 +103,7 @@
{ {
"ID": "SelectAllButton", "ID": "SelectAllButton",
"Translations": { "Translations": {
"ar_SA": "اختر الكل", "ar_SA": "اختر الكل",
"de_DE": "Alles auswählen", "de_DE": "Alles auswählen",
"el_GR": "Επιλογή όλων", "el_GR": "Επιλογή όλων",
"en_US": "Select All", "en_US": "Select All",
@@ -366,7 +366,7 @@
"no_NO": null, "no_NO": null,
"pl_PL": null, "pl_PL": null,
"pt_BR": null, "pt_BR": null,
"ru_RU": "{0} МБ", "ru_RU": "{0} МБ",
"sv_SE": null, "sv_SE": null,
"th_TH": null, "th_TH": null,
"tr_TR": null, "tr_TR": null,

View File

@@ -6,7 +6,7 @@ namespace ARMeilleure.Common
public readonly struct AddressTableLevel public readonly struct AddressTableLevel
{ {
/// <summary> /// <summary>
/// Gets the index of the <see cref="Level"/> in the guest address. /// Gets the index of the <see cref="Index"/> in the guest address.
/// </summary> /// </summary>
public int Index { get; } public int Index { get; }

View File

@@ -128,7 +128,7 @@ namespace Ryujinx.BuildValidationTasks
using (StreamWriter sw = new(path)) using (StreamWriter sw = new(path))
{ {
sw.Write(jsonString); sw.Write($"{jsonString}\n");
} }
} }

View File

@@ -11,7 +11,11 @@ namespace Ryujinx.HLE.HOS.Services.Notification
private readonly KEvent _getNotificationSendingNotifierEvent; private readonly KEvent _getNotificationSendingNotifierEvent;
private int _getNotificationSendingNotifierEventHandle; private int _getNotificationSendingNotifierEventHandle;
public INotificationSystemEventAccessor(ServiceCtx context) { }
public INotificationSystemEventAccessor(ServiceCtx context)
{
_getNotificationSendingNotifierEvent = new KEvent(context.Device.System.KernelContext);
}
[CommandCmif(0)] // 9.0.0+ [CommandCmif(0)] // 9.0.0+
// GetNotificationSendingNotifier() -> nn::notification::server::INotificationSystemEventAccessor // GetNotificationSendingNotifier() -> nn::notification::server::INotificationSystemEventAccessor

View File

@@ -41,7 +41,7 @@ namespace Ryujinx.Input.SDL3
} }
int serialNumber = 0; int serialNumber = 0;
string? serial = SDL_GetGamepadSerial(gamepadHandle); string serial = SDL_GetGamepadSerial(gamepadHandle);
if (serial is not null) if (serial is not null)
{ {
int.TryParse(serial, out serialNumber); int.TryParse(serial, out serialNumber);

View File

@@ -767,8 +767,9 @@ namespace Ryujinx.Input.HLE
{ {
foreach (AssignedInputDevice assignedController in assignedControllers) 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)) if (string.Equals(gamepadId, assignedController.Id, StringComparison.Ordinal))
{ {
yield return assignedController; yield return assignedController;
@@ -782,14 +783,14 @@ namespace Ryujinx.Input.HLE
if (config is StandardControllerInputConfig) 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)) if (string.Equals(gamepadId, config.Id, StringComparison.Ordinal))
{ {
yield return new AssignedInputDevice yield return new AssignedInputDevice
{ {
Type = AssignedInputDeviceType.Controller, Type = AssignedInputDeviceType.Controller, Id = gamepadId,
Id = gamepadId,
}; };
yield break; yield break;
} }
@@ -1092,7 +1093,7 @@ namespace Ryujinx.Input.HLE
: _assignedControllerConfigs.FirstOrDefault(), : _assignedControllerConfigs.FirstOrDefault(),
_controllerDriver _controllerDriver
), ),
_ => ((IGamepad?)null, (InputConfig?)null, (IGamepadDriver?)null) _ => ((IGamepad)null, (InputConfig)null, (IGamepadDriver)null)
}; };
_controllerGamepad = _gamepad; _controllerGamepad = _gamepad;

View File

@@ -26,9 +26,9 @@ namespace Ryujinx.Ava.Common
internal class TrimmerWindow : Ryujinx.Common.Logging.XCIFileTrimmerLog 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; _viewModel = viewModel;
} }

View File

@@ -1105,7 +1105,7 @@ namespace Ryujinx.Ava.Systems.PlayReport
return $"At the main menu"; return $"At the main menu";
static string LocFinal(string? location) => location switch static string LocFinal(string location) => location switch
{ {
"0" => "Somewhere in Miitopia", "0" => "Somewhere in Miitopia",
"1" => "Wandering around Greenhorne", "1" => "Wandering around Greenhorne",
@@ -1152,7 +1152,9 @@ namespace Ryujinx.Ava.Systems.PlayReport
return "At the main menu"; return "At the main menu";
} }
static string MarioOrLuigiGamemode(string? gamemode) => gamemode switch return "";
static string MarioOrLuigiGamemode(string gamemode) => gamemode switch
{ {
"0" => "mario", "0" => "mario",
"1" => "luigi", "1" => "luigi",
@@ -1161,14 +1163,14 @@ namespace Ryujinx.Ava.Systems.PlayReport
_ => gamemode _ => gamemode
}; };
static string OtherGameMode(string? gamemode) => gamemode switch // static string OtherGameMode(string gamemode) => gamemode switch
{ // {
"2" => "Boost Rush", // "2" => "Boost Rush",
"3" => "Challenges", // "3" => "Challenges",
"4" => "Coin Battle", // "4" => "Coin Battle",
"5" => "Coin Battle Editor", // "5" => "Coin Battle Editor",
_ => "" // _ => ""
}; // };
static string SpecialMapNames(int? course) => course switch static string SpecialMapNames(int? course) => course switch
{ {
@@ -1196,9 +1198,6 @@ namespace Ryujinx.Ava.Systems.PlayReport
// Glacier seals = 16, water leaf = 15 // Glacier seals = 16, water leaf = 15
// desert ice = 14, acorn squid = 13 // desert ice = 14, acorn squid = 13
// all other course numbers are to be considered a hazard // all other course numbers are to be considered a hazard
return "";
} }
} }
} }

View File

@@ -108,7 +108,7 @@ namespace Ryujinx.Ava.UI.Helpers
try try
{ {
string labelsJson = File.ReadAllText(labelsPath); string labelsJson = File.ReadAllText(labelsPath);
Dictionary<string, string>? labels = JsonSerializer.Deserialize<Dictionary<string, string>>(labelsJson, _serializerOptions); Dictionary<string, string> labels = JsonSerializer.Deserialize<Dictionary<string, string>>(labelsJson, _serializerOptions);
if (labels != null) if (labels != null)
{ {

View File

@@ -1767,7 +1767,7 @@ namespace Ryujinx.Ava.UI.ViewModels
} }
} }
private async Task<IReadOnlyList<string>?> PickFolders(LocaleKeys titleKey) private async Task<IReadOnlyList<string>> PickFolders(LocaleKeys titleKey)
{ {
return (await StorageProvider.OpenMultiFolderPickerAsync(new FolderPickerOpenOptions 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.X + (int)(Window.Bounds.Width / 2),
Window.Position.Y + (int)(Window.Bounds.Height / 2)); Window.Position.Y + (int)(Window.Bounds.Height / 2));
Avalonia.Platform.Screen? screen = Avalonia.Platform.Screen screen =
Window.Screens.ScreenFromVisual(Window) ?? Window.Screens.ScreenFromVisual(Window) ??
Window.Screens.ScreenFromPoint(windowCenter) ?? Window.Screens.ScreenFromPoint(windowCenter) ??
Window.Screens.Primary; Window.Screens.Primary;

View File

@@ -16,7 +16,7 @@ using static Ryujinx.Common.Utilities.XCIFileTrimmer;
namespace Ryujinx.Ava.UI.ViewModels namespace Ryujinx.Ava.UI.ViewModels
{ {
public class XCITrimmerViewModel : BaseModel public class XciTrimmerViewModel : BaseModel
{ {
private const long BytesPerMb = 1024 * 1024; private const long BytesPerMb = 1024 * 1024;
@@ -49,7 +49,7 @@ namespace Ryujinx.Ava.UI.ViewModels
private int _processingTotal; private int _processingTotal;
public XCITrimmerViewModel(MainWindowViewModel mainWindowViewModel) public XciTrimmerViewModel(MainWindowViewModel mainWindowViewModel)
{ {
_logger = new XCITrimmerLog.TrimmerWindow(this); _logger = new XCITrimmerLog.TrimmerWindow(this);
_mainWindowViewModel = mainWindowViewModel; _mainWindowViewModel = mainWindowViewModel;
@@ -299,9 +299,9 @@ namespace Ryujinx.Ava.UI.ViewModels
private class CompareXCITrimmerFiles : IComparer<XCITrimmerFileModel> private class CompareXCITrimmerFiles : IComparer<XCITrimmerFileModel>
{ {
private readonly XCITrimmerViewModel _viewModel; private readonly XciTrimmerViewModel _viewModel;
public CompareXCITrimmerFiles(XCITrimmerViewModel ViewModel) public CompareXCITrimmerFiles(XciTrimmerViewModel ViewModel)
{ {
_viewModel = ViewModel; _viewModel = ViewModel;
} }

View File

@@ -1,5 +1,5 @@
<UserControl <UserControl
x:Class="Ryujinx.Ava.UI.Views.Dialog.XCITrimmerView" x:Class="Ryujinx.Ava.UI.Views.Dialog.XciTrimmerView"
xmlns="https://github.com/avaloniaui" xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@@ -11,7 +11,7 @@
xmlns:models="clr-namespace:Ryujinx.Ava.Common.Models" xmlns:models="clr-namespace:Ryujinx.Ava.Common.Models"
Width="700" Width="700"
Height="600" Height="600"
x:DataType="viewModels:XCITrimmerViewModel" x:DataType="viewModels:XciTrimmerViewModel"
Focusable="True" Focusable="True"
mc:Ignorable="d"> mc:Ignorable="d">
<Grid Margin="25,10,25,0" RowDefinitions="Auto,Auto,*,Auto,Auto"> <Grid Margin="25,10,25,0" RowDefinitions="Auto,Auto,*,Auto,Auto">
@@ -121,7 +121,7 @@
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Center" VerticalAlignment="Center"
CornerRadius="5" CornerRadius="5"
IsVisible="{Binding $parent[UserControl].DataContext.Processing}" IsVisible="{Binding !$parent[UserControl].((viewModels:XciTrimmerViewModel)DataContext).Processing}"
Maximum="100" Maximum="100"
Minimum="0" Minimum="0"
Value="{Binding PercentageProgress}" /> Value="{Binding PercentageProgress}" />
@@ -131,7 +131,7 @@
HorizontalAlignment="Right" HorizontalAlignment="Right"
VerticalAlignment="Center" VerticalAlignment="Center"
MaxLines="1" MaxLines="1"
IsVisible="{Binding !$parent[UserControl].DataContext.Processing}" IsVisible="{Binding !$parent[UserControl].((viewModels:XciTrimmerViewModel)DataContext).Processing}"
Text="{Binding ., Converter={x:Static helpers:XCITrimmerFileSpaceSavingsConverter.Instance}}" /> Text="{Binding ., Converter={x:Static helpers:XCITrimmerFileSpaceSavingsConverter.Instance}}" />
</Grid> </Grid>
</Grid> </Grid>

View File

@@ -11,16 +11,16 @@ using System.Threading.Tasks;
namespace Ryujinx.Ava.UI.Views.Dialog namespace Ryujinx.Ava.UI.Views.Dialog
{ {
public partial class XCITrimmerView : RyujinxControl<XCITrimmerViewModel> public partial class XciTrimmerView : RyujinxControl<XciTrimmerViewModel>
{ {
public XCITrimmerView() public XciTrimmerView()
{ {
InitializeComponent(); InitializeComponent();
} }
private void ToggleSelect(object sender, RoutedEventArgs e) private void ToggleSelect(object sender, RoutedEventArgs e)
{ {
if (DataContext is XCITrimmerViewModel vm) if (DataContext is XciTrimmerViewModel vm)
vm.ToggleSelect(); vm.ToggleSelect();
} }
@@ -31,9 +31,9 @@ namespace Ryujinx.Ava.UI.Views.Dialog
PrimaryButtonText = string.Empty, PrimaryButtonText = string.Empty,
SecondaryButtonText = string.Empty, SecondaryButtonText = string.Empty,
CloseButtonText = 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] Title = LocaleManager.Instance[LocaleKeys.MenuBar_Actions_XCITrimmerButton]
}; };
@@ -58,7 +58,7 @@ namespace Ryujinx.Ava.UI.Views.Dialog
private void Close(object sender, RoutedEventArgs e) private void Close(object sender, RoutedEventArgs e)
{ {
((ContentDialog)Parent).Hide(); ((ContentDialog)Parent!).Hide();
} }
private void Cancel(Object sender, RoutedEventArgs e) 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) public void Sort_Checked(object sender, RoutedEventArgs args)
{ {
if (sender is RadioButton { Tag: string sortField }) if (sender is RadioButton { Tag: string sortField })
ViewModel.SortingField = Enum.Parse<XCITrimmerViewModel.SortField>(sortField); ViewModel.SortingField = Enum.Parse<XciTrimmerViewModel.SortField>(sortField);
} }
public void Order_Checked(object sender, RoutedEventArgs args) public void Order_Checked(object sender, RoutedEventArgs args)

View File

@@ -43,7 +43,7 @@ namespace Ryujinx.Ava.UI.Views.Main
ResumeEmulationMenuItem.Command = Commands.Create(() => ViewModel.AppHost?.Resume()); ResumeEmulationMenuItem.Command = Commands.Create(() => ViewModel.AppHost?.Resume());
StopEmulationMenuItem.Command = Commands.Create(() => ViewModel.AppHost?.ShowExitPrompt().OrCompleted()); StopEmulationMenuItem.Command = Commands.Create(() => ViewModel.AppHost?.ShowExitPrompt().OrCompleted());
RestartEmulationMenuItem.Command = Commands.Create(() => ViewModel.RestartEmulation()); RestartEmulationMenuItem.Command = Commands.Create(() => ViewModel.RestartEmulation());
XCITrimmerMenuItem.Command = Commands.Create(XCITrimmerView.Show); XCITrimmerMenuItem.Command = Commands.Create(XciTrimmerView.Show);
AboutWindowMenuItem.Command = Commands.Create(AboutView.Show); AboutWindowMenuItem.Command = Commands.Create(AboutView.Show);
CompatibilityListMenuItem.Command = Commands.Create(() => CompatibilityListWindow.Show()); CompatibilityListMenuItem.Command = Commands.Create(() => CompatibilityListWindow.Show());
LdnGameListMenuItem.Command = Commands.Create(() => LdnGamesListWindow.Show()); LdnGameListMenuItem.Command = Commands.Create(() => LdnGamesListWindow.Show());

View File

@@ -44,7 +44,7 @@ namespace Ryujinx.Ava.UI.Views.Settings
return; return;
} }
MainWindow? mainWindow = RyujinxApp.MainWindow; MainWindow mainWindow = RyujinxApp.MainWindow;
if (mainWindow?.ViewModel?.AppHost?.NpadManager is not { } npadManager) if (mainWindow?.ViewModel?.AppHost?.NpadManager is not { } npadManager)
{ {
return; return;