Layer timeline - Show keyframes of collapsed groups

Profile editor - Don't reload UI elements on undo/redo if there's nothing to undo/redo
Layer properties - Properly show/hide properties
This commit is contained in:
SpoinkyNL committed 2020-05-29 17:21:29 +02:00
1 parent dd000e7bed
commit 728baa1b7f
20 files changed
+182 -83

No files matched your search

@@ -10,6 +10,7 @@ namespace Artemis.Core.Models.Profile.LayerProperties
public abstract class BaseLayerProperty
{
private bool _keyframesEnabled;
private bool _isHidden;
internal BaseLayerProperty()
{
@@ -48,7 +49,15 @@ namespace Artemis.Core.Models.Profile.LayerProperties
/// <summary>
/// Gets or sets whether the property is hidden in the UI
/// </summary>
public bool IsHidden { get; set; }
public bool IsHidden
{
get => _isHidden;
set
{
_isHidden = value;
OnVisibilityChanged();
}
}
/// <summary>
/// Indicates whether the BaseValue was loaded from storage, useful to check whether a default value must be applied
@@ -100,6 +109,11 @@ namespace Artemis.Core.Models.Profile.LayerProperties
/// </summary>
public event EventHandler BaseValueChanged;
/// <summary>
/// Occurs when the <see cref="IsHidden"/> value of the layer property was updated
/// </summary>
public event EventHandler VisibilityChanged;
/// <summary>
/// Occurs when keyframes are enabled/disabled
/// </summary>
@@ -125,6 +139,11 @@ namespace Artemis.Core.Models.Profile.LayerProperties
BaseValueChanged?.Invoke(this, EventArgs.Empty);
}
protected virtual void OnVisibilityChanged()
{
VisibilityChanged?.Invoke(this, EventArgs.Empty);
}
protected virtual void OnKeyframesToggled()
{
KeyframesToggled?.Invoke(this, EventArgs.Empty);
@@ -143,5 +162,7 @@ namespace Artemis.Core.Models.Profile.LayerProperties
#endregion
public abstract void ApplyDefaultValue();
}
}
@@ -284,6 +284,7 @@ namespace Artemis.Core.Models.Profile.LayerProperties
public override void ApplyDefaultValue()
{
BaseValue = DefaultValue;
CurrentValue = DefaultValue;
}
}
@@ -4,7 +4,7 @@ using Artemis.Storage.Entities.Profile;
namespace Artemis.Core.Models.Profile.LayerProperties.Types
{
/// <inheritdoc/>
/// <inheritdoc />
public class ColorGradientLayerProperty : LayerProperty<ColorGradient>
{
internal ColorGradientLayerProperty()
@@ -12,21 +12,17 @@ namespace Artemis.Core.Models.Profile.LayerProperties.Types
KeyframesSupported = false;
}
internal override void ApplyToLayerProperty(PropertyEntity entity, LayerPropertyGroup layerPropertyGroup, bool fromStorage)
{
base.ApplyToLayerProperty(entity, layerPropertyGroup, fromStorage);
// Don't allow color gradients to be null
if (BaseValue == null)
{
BaseValue = DefaultValue ?? new ColorGradient();
}
}
protected override void UpdateCurrentValue(float keyframeProgress, float keyframeProgressEased)
{
throw new ArtemisCoreException("Color Gradients do not support keyframes.");
}
internal override void ApplyToLayerProperty(PropertyEntity entity, LayerPropertyGroup layerPropertyGroup, bool fromStorage)
{
base.ApplyToLayerProperty(entity, layerPropertyGroup, fromStorage);
// Don't allow color gradients to be null
BaseValue ??= DefaultValue ?? new ColorGradient();
}
}
}