1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Layer adapter hints - Finished port, added deleting hints

This commit is contained in:
Robert 2022-05-25 22:22:09 +02:00
parent 720bebaf35
commit cd97ed420c
7 changed files with 21 additions and 13 deletions

View File

@ -119,7 +119,7 @@ public interface IConditionVmFactory : IVmFactory
public interface ILayerHintVmFactory : IVmFactory public interface ILayerHintVmFactory : IVmFactory
{ {
CategoryAdaptionHintViewModel CategoryAdaptionHintViewModel(CategoryAdaptionHint adaptionHint); CategoryAdaptionHintViewModel CategoryAdaptionHintViewModel(Layer layer, CategoryAdaptionHint adaptionHint);
DeviceAdaptionHintViewModel DeviceAdaptionHintViewModel(DeviceAdaptionHint adaptionHint); DeviceAdaptionHintViewModel DeviceAdaptionHintViewModel(Layer layer, DeviceAdaptionHint adaptionHint);
KeyboardSectionAdaptionHintViewModel KeyboardSectionAdaptionHintViewModel(KeyboardSectionAdaptionHint adaptionHint); KeyboardSectionAdaptionHintViewModel KeyboardSectionAdaptionHintViewModel(Layer layer, KeyboardSectionAdaptionHint adaptionHint);
} }

View File

@ -128,10 +128,15 @@ public class MenuBarViewModel : ActivatableViewModelBase
if (ProfileConfiguration?.Profile == null) if (ProfileConfiguration?.Profile == null)
return; return;
if (!await _windowService.ShowConfirmContentDialog("Adapt profile", "Are you sure you want to adapt the profile to your current surface? Layer assignments may change.")) bool confirmed = await _windowService.ShowConfirmContentDialog(
"Adapt profile",
"Are you sure you want to adapt the profile to your current surface? Layer assignments may change and you will lose your undo/redo history."
);
if (!confirmed)
return; return;
_profileService.AdaptProfile(ProfileConfiguration.Profile); _profileService.AdaptProfile(ProfileConfiguration.Profile);
_history?.Clear();
} }
private void ExecuteToggleSuspended() private void ExecuteToggleSuspended()

View File

@ -7,16 +7,19 @@ namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public abstract class AdaptionHintViewModelBase : ViewModelBase public abstract class AdaptionHintViewModelBase : ViewModelBase
{ {
protected AdaptionHintViewModelBase(IAdaptionHint adaptionHint) protected AdaptionHintViewModelBase(Layer layer, IAdaptionHint adaptionHint)
{ {
Layer = layer;
AdaptionHint = adaptionHint; AdaptionHint = adaptionHint;
Remove = ReactiveCommand.Create(ExecuteRemove); Remove = ReactiveCommand.Create(ExecuteRemove);
} }
public ReactiveCommand<Unit, Unit> Remove { get; } public Layer Layer { get; }
public IAdaptionHint AdaptionHint { get; } public IAdaptionHint AdaptionHint { get; }
public ReactiveCommand<Unit, Unit> Remove { get; }
private void ExecuteRemove() private void ExecuteRemove()
{ {
Layer.Adapter.Remove(AdaptionHint);
} }
} }

View File

@ -4,7 +4,7 @@ namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public class CategoryAdaptionHintViewModel : AdaptionHintViewModelBase public class CategoryAdaptionHintViewModel : AdaptionHintViewModelBase
{ {
public CategoryAdaptionHintViewModel(CategoryAdaptionHint adaptionHint) : base(adaptionHint) public CategoryAdaptionHintViewModel(Layer layer, CategoryAdaptionHint adaptionHint) : base(layer, adaptionHint)
{ {
CategoryAdaptionHint = adaptionHint; CategoryAdaptionHint = adaptionHint;
} }

View File

@ -4,7 +4,7 @@ namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public class DeviceAdaptionHintViewModel : AdaptionHintViewModelBase public class DeviceAdaptionHintViewModel : AdaptionHintViewModelBase
{ {
public DeviceAdaptionHintViewModel(DeviceAdaptionHint adaptionHint) : base(adaptionHint) public DeviceAdaptionHintViewModel(Layer layer, DeviceAdaptionHint adaptionHint) : base(layer, adaptionHint)
{ {
DeviceAdaptionHint = adaptionHint; DeviceAdaptionHint = adaptionHint;
} }

View File

@ -4,7 +4,7 @@ namespace Artemis.UI.Screens.ProfileEditor.ProfileTree.Dialogs.AdaptionHints;
public class KeyboardSectionAdaptionHintViewModel : AdaptionHintViewModelBase public class KeyboardSectionAdaptionHintViewModel : AdaptionHintViewModelBase
{ {
public KeyboardSectionAdaptionHintViewModel(KeyboardSectionAdaptionHint adaptionHint) : base(adaptionHint) public KeyboardSectionAdaptionHintViewModel(Layer layer, KeyboardSectionAdaptionHint adaptionHint) : base(layer, adaptionHint)
{ {
KeyboardSectionAdaptionHint = adaptionHint; KeyboardSectionAdaptionHint = adaptionHint;
} }

View File

@ -76,9 +76,9 @@ public class LayerHintsDialogViewModel : DialogViewModelBase<bool>
{ {
return hint switch return hint switch
{ {
CategoryAdaptionHint categoryAdaptionHint => _vmFactory.CategoryAdaptionHintViewModel(categoryAdaptionHint), CategoryAdaptionHint categoryAdaptionHint => _vmFactory.CategoryAdaptionHintViewModel(Layer, categoryAdaptionHint),
DeviceAdaptionHint deviceAdaptionHint => _vmFactory.DeviceAdaptionHintViewModel(deviceAdaptionHint), DeviceAdaptionHint deviceAdaptionHint => _vmFactory.DeviceAdaptionHintViewModel(Layer, deviceAdaptionHint),
KeyboardSectionAdaptionHint keyboardSectionAdaptionHint => _vmFactory.KeyboardSectionAdaptionHintViewModel(keyboardSectionAdaptionHint), KeyboardSectionAdaptionHint keyboardSectionAdaptionHint => _vmFactory.KeyboardSectionAdaptionHintViewModel(Layer, keyboardSectionAdaptionHint),
_ => throw new ArgumentOutOfRangeException(nameof(hint)) _ => throw new ArgumentOutOfRangeException(nameof(hint))
}; };
} }