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

Gradient editor - Code style

This commit is contained in:
Robert 2021-04-28 17:26:59 +02:00
parent 702fd7a4e1
commit f1dfb4aad8

View File

@ -30,18 +30,6 @@ namespace Artemis.UI.Shared.Screens.GradientEditor
ColorStopViewModels.CollectionChanged += ColorStopViewModelsOnCollectionChanged; ColorStopViewModels.CollectionChanged += ColorStopViewModelsOnCollectionChanged;
} }
#region Overrides of DialogViewModelBase
/// <inheritdoc />
public override void OnDialogClosed(object sender, DialogClosingEventArgs e)
{
ColorGradient.CollectionChanged -= ColorGradientOnCollectionChanged;
ColorStopViewModels.CollectionChanged -= ColorStopViewModelsOnCollectionChanged;
base.OnDialogClosed(sender, e);
}
#endregion
public BindableCollection<ColorStopViewModel> ColorStopViewModels { get; } public BindableCollection<ColorStopViewModel> ColorStopViewModels { get; }
public ColorStopViewModel? SelectedColorStopViewModel public ColorStopViewModel? SelectedColorStopViewModel
@ -65,11 +53,20 @@ namespace Artemis.UI.Shared.Screens.GradientEditor
set => SetAndNotify(ref _previewWidth, value); set => SetAndNotify(ref _previewWidth, value);
} }
public ColorGradient Stops public ColorGradient Stops => ColorGradient;
#region Overrides of DialogViewModelBase
/// <inheritdoc />
public override void OnDialogClosed(object sender, DialogClosingEventArgs e)
{ {
get => ColorGradient; ColorGradient.CollectionChanged -= ColorGradientOnCollectionChanged;
ColorStopViewModels.CollectionChanged -= ColorStopViewModelsOnCollectionChanged;
base.OnDialogClosed(sender, e);
} }
#endregion
public void AddColorStop(object sender, MouseEventArgs e) public void AddColorStop(object sender, MouseEventArgs e)
{ {
Canvas? child = VisualTreeUtilities.FindChild<Canvas>((DependencyObject) sender, null); Canvas? child = VisualTreeUtilities.FindChild<Canvas>((DependencyObject) sender, null);
@ -87,9 +84,6 @@ namespace Artemis.UI.Shared.Screens.GradientEditor
public void RemoveColorStop(ColorStopViewModel colorStopViewModel) public void RemoveColorStop(ColorStopViewModel colorStopViewModel)
{ {
if (colorStopViewModel == null)
return;
ColorStopViewModels.Remove(colorStopViewModel); ColorStopViewModels.Remove(colorStopViewModel);
ColorGradient.Remove(colorStopViewModel.ColorStop); ColorGradient.Remove(colorStopViewModel.ColorStop);
@ -99,18 +93,18 @@ namespace Artemis.UI.Shared.Screens.GradientEditor
public void SpreadColorStops() public void SpreadColorStops()
{ {
var stops = ColorStopViewModels.OrderBy(x => x.OffsetFloat); List<ColorStopViewModel> stops = ColorStopViewModels.OrderBy(x => x.OffsetFloat).ToList();
int index = 0; int index = 0;
foreach (ColorStopViewModel stop in stops) foreach (ColorStopViewModel stop in stops)
{ {
stop.OffsetFloat = index / ((float)stops.Count() - 1); stop.OffsetFloat = index / ((float) stops.Count - 1);
index++; index++;
} }
} }
public void RotateColorStops() public void RotateColorStops()
{ {
var stops = ColorStopViewModels.OrderByDescending(x => x.OffsetFloat); List<ColorStopViewModel> stops = ColorStopViewModels.OrderByDescending(x => x.OffsetFloat).ToList();
float lastStopPosition = stops.Last().OffsetFloat; float lastStopPosition = stops.Last().OffsetFloat;
foreach (ColorStopViewModel stop in stops) foreach (ColorStopViewModel stop in stops)
{ {
@ -122,10 +116,7 @@ namespace Artemis.UI.Shared.Screens.GradientEditor
public void FlipColorStops() public void FlipColorStops()
{ {
foreach (ColorStopViewModel stop in ColorStopViewModels) foreach (ColorStopViewModel stop in ColorStopViewModels) stop.OffsetFloat = 1 - stop.OffsetFloat;
{
stop.OffsetFloat = 1 - stop.OffsetFloat;
}
} }
public void ToggleSeam() public void ToggleSeam()
@ -133,7 +124,7 @@ namespace Artemis.UI.Shared.Screens.GradientEditor
if (ColorGradient.IsSeamless()) if (ColorGradient.IsSeamless())
{ {
// Remove the last stop // Remove the last stop
var stop = ColorStopViewModels.OrderBy(x => x.OffsetFloat).Last(); ColorStopViewModel? stop = ColorStopViewModels.OrderBy(x => x.OffsetFloat).Last();
if (stop == SelectedColorStopViewModel) SelectColorStop(null); if (stop == SelectedColorStopViewModel) SelectColorStop(null);
@ -159,6 +150,7 @@ namespace Artemis.UI.Shared.Screens.GradientEditor
SpreadColorStops(); SpreadColorStops();
} }
} }
public void ClearGradient() public void ClearGradient()
{ {
ColorGradient.Clear(); ColorGradient.Clear();