From 41790aa7434a5e6d132fad2e24844d450378205b Mon Sep 17 00:00:00 2001 From: MutantAura <44103205+MutantAura@users.noreply.github.com> Date: Mon, 19 Sep 2022 20:04:22 +0100 Subject: Avalonia - Misc changes to UX (#3643) * Change navbar from compact to default and force text overflow globally * Fix settings window * Fix right stick control alignment * Initialize value and add logging for SDL IDs * Fix alignment of setting text and improve borders * Clean up padding and size of buttons on controller settings * Fix right side trigger alignment and correct styling * Revert axaml alignment * Fix alignment of volume widget * Fix timezone autocompletebox dropdown height * MainWindow: Line up volume status bar item * Remove margins and add padding to volume widget * Make volume text localizable. Co-authored-by: merry --- .../Ui/ViewModels/ControllerSettingsViewModel.cs | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs') diff --git a/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs b/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs index 2422a031..c936fc54 100644 --- a/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs +++ b/Ryujinx.Ava/Ui/ViewModels/ControllerSettingsViewModel.cs @@ -43,6 +43,7 @@ namespace Ryujinx.Ava.Ui.ViewModels private PlayerIndex _playerId; private int _controller; + private int _controllerNumber = 0; private string _controllerImage; private int _device; private object _configuration; @@ -439,6 +440,14 @@ namespace Ryujinx.Ava.Ui.ViewModels return str; } + private static string GetShortGamepadId(string str) + { + const string Hyphen = "-"; + const int Offset = 1; + + return str.Substring(str.IndexOf(Hyphen) + Offset); + } + public void LoadDevices() { lock (Devices) @@ -451,9 +460,11 @@ namespace Ryujinx.Ava.Ui.ViewModels { using IGamepad gamepad = _mainWindow.InputManager.KeyboardDriver.GetGamepad(id); + Logger.Info?.Print(LogClass.Configuration, $"{GetShortGamepadName(gamepad.Name)} has been connected with ID: {gamepad.Id}"); + if (gamepad != null) { - Devices.Add((DeviceType.Keyboard, id, $"{GetShortGamepadName(gamepad.Name)} ({id})")); + Devices.Add((DeviceType.Keyboard, id, $"{GetShortGamepadName(gamepad.Name)}")); } } @@ -461,12 +472,21 @@ namespace Ryujinx.Ava.Ui.ViewModels { using IGamepad gamepad = _mainWindow.InputManager.GamepadDriver.GetGamepad(id); + Logger.Info?.Print(LogClass.Configuration, $"{GetShortGamepadName(gamepad.Name)} has been connected with ID: {gamepad.Id}"); + if (gamepad != null) { - Devices.Add((DeviceType.Controller, id, $"{GetShortGamepadName(gamepad.Name)} ({id})")); + if (Devices.Any(controller => GetShortGamepadId(controller.Id) == GetShortGamepadId(gamepad.Id))) + { + _controllerNumber++; + } + + Devices.Add((DeviceType.Controller, id, $"{GetShortGamepadName(gamepad.Name)} ({_controllerNumber})")); } } + _controllerNumber = 0; + DeviceList.AddRange(Devices.Select(x => x.Name)); Device = Math.Min(Device, DeviceList.Count); } -- cgit v1.2.3