From db069ea8bf9580f13ced32dc2bd7767903f4e728 Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Mon, 5 Jun 2023 18:48:07 +0100 Subject: [PATCH] Reworked device properties screen --- src/Artemis.UI/DryIoc/Factories/IVMFactory.cs | 15 +- .../Screens/Device/DevicePropertiesView.axaml | 6 +- .../Device/DevicePropertiesViewModel.cs | 6 +- .../Device/Tabs/DeviceGeneralTabView.axaml | 371 ++++++++++++++++++ .../Device/Tabs/DeviceGeneralTabView.axaml.cs | 11 + .../Device/Tabs/DeviceGeneralTabViewModel.cs | 256 ++++++++++++ .../Device/Tabs/DeviceLayoutTabView.axaml | 82 ++++ .../Device/Tabs/DeviceLayoutTabView.axaml.cs | 26 ++ .../Device/Tabs/DeviceLayoutTabViewModel.cs | 143 +++++++ 9 files changed, 910 insertions(+), 6 deletions(-) create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceGeneralTabView.axaml create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceGeneralTabView.axaml.cs create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceGeneralTabViewModel.cs create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceLayoutTabView.axaml create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceLayoutTabView.axaml.cs create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceLayoutTabViewModel.cs diff --git a/src/Artemis.UI/DryIoc/Factories/IVMFactory.cs b/src/Artemis.UI/DryIoc/Factories/IVMFactory.cs index d410e3cfc..8d94699dd 100644 --- a/src/Artemis.UI/DryIoc/Factories/IVMFactory.cs +++ b/src/Artemis.UI/DryIoc/Factories/IVMFactory.cs @@ -25,6 +25,7 @@ using Artemis.UI.Screens.Sidebar; using Artemis.UI.Screens.SurfaceEditor; using Artemis.UI.Screens.VisualScripting; using Artemis.UI.Screens.VisualScripting.Pins; +using Artemis.UI.Shared; using DryIoc; using ReactiveUI; @@ -40,9 +41,11 @@ public interface IDeviceVmFactory : IVmFactory DeviceSettingsViewModel DeviceSettingsViewModel(ArtemisDevice device, DevicesTabViewModel devicesTabViewModel); DeviceDetectInputViewModel DeviceDetectInputViewModel(ArtemisDevice device); DevicePropertiesTabViewModel DevicePropertiesTabViewModel(ArtemisDevice device); + DeviceLayoutTabViewModel DeviceLayoutTabViewModel(ArtemisDevice device); DeviceInfoTabViewModel DeviceInfoTabViewModel(ArtemisDevice device); DeviceLedsTabViewModel DeviceLedsTabViewModel(ArtemisDevice device, ObservableCollection selectedLeds); InputMappingsTabViewModel InputMappingsTabViewModel(ArtemisDevice device, ObservableCollection selectedLeds); + DeviceGeneralTabViewModel DeviceGeneralTabViewModel(ArtemisDevice device); } public class DeviceFactory : IDeviceVmFactory { @@ -72,7 +75,12 @@ public class DeviceFactory : IDeviceVmFactory { return _container.Resolve(new object[] { device }); } - + + public DeviceLayoutTabViewModel DeviceLayoutTabViewModel(ArtemisDevice device) + { + return _container.Resolve(new object[] { device }); + } + public DeviceInfoTabViewModel DeviceInfoTabViewModel(ArtemisDevice device) { return _container.Resolve(new object[] { device }); @@ -87,6 +95,11 @@ public class DeviceFactory : IDeviceVmFactory { return _container.Resolve(new object[] { device, selectedLeds }); } + + public DeviceGeneralTabViewModel DeviceGeneralTabViewModel(ArtemisDevice device) + { + return _container.Resolve(new object[] { device }); + } } public interface ISettingsVmFactory : IVmFactory diff --git a/src/Artemis.UI/Screens/Device/DevicePropertiesView.axaml b/src/Artemis.UI/Screens/Device/DevicePropertiesView.axaml index 22b63510e..9b78bb060 100644 --- a/src/Artemis.UI/Screens/Device/DevicePropertiesView.axaml +++ b/src/Artemis.UI/Screens/Device/DevicePropertiesView.axaml @@ -11,8 +11,8 @@ Icon="/Assets/Images/Logo/application.ico" Title="Artemis | Device Properties" WindowStartupLocation="CenterOwner" - Width="1250" - Height="900"> + Width="1400" + Height="800"> @@ -52,7 +52,7 @@ - + diff --git a/src/Artemis.UI/Screens/Device/DevicePropertiesViewModel.cs b/src/Artemis.UI/Screens/Device/DevicePropertiesViewModel.cs index 87ee3ae20..395a718f8 100644 --- a/src/Artemis.UI/Screens/Device/DevicePropertiesViewModel.cs +++ b/src/Artemis.UI/Screens/Device/DevicePropertiesViewModel.cs @@ -64,8 +64,10 @@ public class DevicePropertiesViewModel : DialogViewModelBase private void AddTabs() { - Tabs.Add(_deviceVmFactory.DevicePropertiesTabViewModel(Device)); - Tabs.Add(_deviceVmFactory.DeviceInfoTabViewModel(Device)); + Tabs.Add(_deviceVmFactory.DeviceGeneralTabViewModel(Device)); + Tabs.Add(_deviceVmFactory.DeviceLayoutTabViewModel(Device)); + //Tabs.Add(_deviceVmFactory.DevicePropertiesTabViewModel(Device)); + //Tabs.Add(_deviceVmFactory.DeviceInfoTabViewModel(Device)); if (Device.DeviceType == RGBDeviceType.Keyboard) Tabs.Add(_deviceVmFactory.InputMappingsTabViewModel(Device, SelectedLeds)); Tabs.Add(_deviceVmFactory.DeviceLedsTabViewModel(Device, SelectedLeds)); diff --git a/src/Artemis.UI/Screens/Device/Tabs/DeviceGeneralTabView.axaml b/src/Artemis.UI/Screens/Device/Tabs/DeviceGeneralTabView.axaml new file mode 100644 index 000000000..a62df0f73 --- /dev/null +++ b/src/Artemis.UI/Screens/Device/Tabs/DeviceGeneralTabView.axaml @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X-coordinate + + mm + + Y-coordinate + + mm + + Scale + + times + + Rotation + + deg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +