From 6e197d725a1773faae338415af2f294e37500904 Mon Sep 17 00:00:00 2001 From: Robert Date: Sun, 13 Jun 2021 10:37:18 +0200 Subject: [PATCH] Device properties - Repopulate LED tab each time it opens Core - Save device before reloading provider for layout reset --- src/Artemis.Core/Services/RgbService.cs | 4 ++++ .../Settings/Device/Tabs/DeviceLedsTabViewModel.cs | 10 ++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Artemis.Core/Services/RgbService.cs b/src/Artemis.Core/Services/RgbService.cs index 22d7b1c66..feff46dc2 100644 --- a/src/Artemis.Core/Services/RgbService.cs +++ b/src/Artemis.Core/Services/RgbService.cs @@ -386,6 +386,10 @@ namespace Artemis.Core.Services private void ReloadDevice(ArtemisDevice device) { + // Any pending changes are otherwise lost including DisableDefaultLayout + device.ApplyToEntity(); + _deviceRepository.Save(device.DeviceEntity); + DeviceProvider deviceProvider = device.DeviceProvider; // Feels bad but need to in order to get the initial LEDs back diff --git a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceLedsTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceLedsTabViewModel.cs index 5ec8986f7..5ec75422b 100644 --- a/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceLedsTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Device/Tabs/DeviceLedsTabViewModel.cs @@ -30,22 +30,20 @@ namespace Artemis.UI.Screens.Settings.Device.Tabs #region Overrides of Screen - /// - protected override void OnInitialActivate() + protected override void OnActivate() { BindableCollection selectedLeds = ((DeviceDialogViewModel) Parent).SelectedLeds; LedViewModels.Clear(); LedViewModels.AddRange(Device.Leds.Select(l => new DeviceLedsTabLedViewModel(l, selectedLeds))); selectedLeds.CollectionChanged += SelectedLedsOnCollectionChanged; - base.OnInitialActivate(); + base.OnActivate(); } - /// - protected override void OnClose() + protected override void OnDeactivate() { ((DeviceDialogViewModel) Parent).SelectedLeds.CollectionChanged -= SelectedLedsOnCollectionChanged; - base.OnClose(); + base.OnDeactivate(); } #endregion