mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Profiles - Avoid unnecessary OnBrokenStateChanged calls
Profiles - Fixed int range/float range deserialization Profiles - Use Random.Shared where applicable
This commit is contained in:
parent
5c7497a859
commit
28640f9502
@ -61,6 +61,9 @@ public abstract class BreakableModel : CorePropertyChanged, IBreakableModel
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void SetBrokenState(string state, Exception? exception = null)
|
public void SetBrokenState(string state, Exception? exception = null)
|
||||||
{
|
{
|
||||||
|
if (state == BrokenState && BrokenStateException?.StackTrace == exception?.StackTrace)
|
||||||
|
return;
|
||||||
|
|
||||||
BrokenState = state ?? throw new ArgumentNullException(nameof(state));
|
BrokenState = state ?? throw new ArgumentNullException(nameof(state));
|
||||||
BrokenStateException = exception;
|
BrokenStateException = exception;
|
||||||
OnBrokenStateChanged();
|
OnBrokenStateChanged();
|
||||||
|
|||||||
@ -160,10 +160,12 @@ public sealed class Layer : RenderProfileElement
|
|||||||
public LayerAdapter Adapter { get; }
|
public LayerAdapter Adapter { get; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override bool ShouldBeEnabled => !Suspended && DisplayConditionMet;
|
public override bool ShouldBeEnabled => !Suspended && DisplayConditionMet && HasBounds;
|
||||||
|
|
||||||
internal override RenderElementEntity RenderElementEntity => LayerEntity;
|
internal override RenderElementEntity RenderElementEntity => LayerEntity;
|
||||||
|
|
||||||
|
private bool HasBounds => Bounds.Width > 0 && Bounds.Height > 0;
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override List<ILayerProperty> GetAllLayerProperties()
|
public override List<ILayerProperty> GetAllLayerProperties()
|
||||||
{
|
{
|
||||||
@ -383,7 +385,7 @@ public sealed class Layer : RenderProfileElement
|
|||||||
|
|
||||||
if (ShouldBeEnabled)
|
if (ShouldBeEnabled)
|
||||||
Enable();
|
Enable();
|
||||||
else if (Suspended || (Timeline.IsFinished && !_renderCopies.Any()))
|
else if (Suspended || !HasBounds || (Timeline.IsFinished && !_renderCopies.Any()))
|
||||||
Disable();
|
Disable();
|
||||||
|
|
||||||
if (!Enabled || Timeline.Delta == TimeSpan.Zero)
|
if (!Enabled || Timeline.Delta == TimeSpan.Zero)
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace Artemis.Core;
|
namespace Artemis.Core;
|
||||||
|
|
||||||
@ -14,12 +15,13 @@ public readonly struct FloatRange
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="start">The start value of the range</param>
|
/// <param name="start">The start value of the range</param>
|
||||||
/// <param name="end">The end value of the range</param>
|
/// <param name="end">The end value of the range</param>
|
||||||
|
[JsonConstructor]
|
||||||
public FloatRange(float start, float end)
|
public FloatRange(float start, float end)
|
||||||
{
|
{
|
||||||
Start = start;
|
Start = start;
|
||||||
End = end;
|
End = end;
|
||||||
|
|
||||||
_rand = new Random();
|
_rand = Random.Shared;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace Artemis.Core;
|
namespace Artemis.Core;
|
||||||
|
|
||||||
@ -14,12 +15,13 @@ public readonly struct IntRange
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="start">The start value of the range</param>
|
/// <param name="start">The start value of the range</param>
|
||||||
/// <param name="end">The end value of the range</param>
|
/// <param name="end">The end value of the range</param>
|
||||||
|
[JsonConstructor]
|
||||||
public IntRange(int start, int end)
|
public IntRange(int start, int end)
|
||||||
{
|
{
|
||||||
Start = start;
|
Start = start;
|
||||||
End = end;
|
End = end;
|
||||||
|
|
||||||
_rand = new Random();
|
_rand = Random.Shared;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -162,7 +162,7 @@ public partial class ProfileConfigurationEditViewModel : DialogViewModelBase<Pro
|
|||||||
// Preselect the icon or fall back to a random one
|
// Preselect the icon or fall back to a random one
|
||||||
SelectedMaterialIcon = !IsNew && Enum.TryParse(_profileConfiguration.Icon.IconName, out MaterialIconKind enumValue)
|
SelectedMaterialIcon = !IsNew && Enum.TryParse(_profileConfiguration.Icon.IconName, out MaterialIconKind enumValue)
|
||||||
? icons.FirstOrDefault(m => m.Icon == enumValue)
|
? icons.FirstOrDefault(m => m.Icon == enumValue)
|
||||||
: icons.ElementAt(new Random().Next(0, icons.Count - 1));
|
: icons.ElementAt(Random.Shared.Next(0, icons.Count - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SaveIcon()
|
private async Task SaveIcon()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user