From f30cc31ead4055dd6b539fc63ae66a83b30af24e Mon Sep 17 00:00:00 2001 From: Robert Date: Sun, 27 Nov 2022 15:33:05 +0100 Subject: [PATCH] Profiles - Fixed folders not enabling after previous fix :) --- src/Artemis.Core/Models/Profile/Folder.cs | 2 +- src/Artemis.Core/Models/Profile/Layer.cs | 9 ++++----- .../Models/Profile/RenderProfileElement.cs | 11 +++++++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/Artemis.Core/Models/Profile/Folder.cs b/src/Artemis.Core/Models/Profile/Folder.cs index e36c205fb..ec3496955 100644 --- a/src/Artemis.Core/Models/Profile/Folder.cs +++ b/src/Artemis.Core/Models/Profile/Folder.cs @@ -238,7 +238,7 @@ public sealed class Folder : RenderProfileElement /// public override void Enable() { - if (!Enabled) + if (Enabled) return; // Not enabling children, they'll enable themselves during their own Update diff --git a/src/Artemis.Core/Models/Profile/Layer.cs b/src/Artemis.Core/Models/Profile/Layer.cs index 1ab84689b..a92aabc35 100644 --- a/src/Artemis.Core/Models/Profile/Layer.cs +++ b/src/Artemis.Core/Models/Profile/Layer.cs @@ -505,7 +505,7 @@ public sealed class Layer : RenderProfileElement { if (Enabled) return; - + bool tryOrBreak = TryOrBreak(() => LayerBrush?.InternalEnable(), "Failed to enable layer brush"); if (!tryOrBreak) return; @@ -839,11 +839,10 @@ public sealed class Layer : RenderProfileElement General.ShapeType.IsHidden = LayerBrush != null && !LayerBrush.SupportsTransformation; General.BlendMode.IsHidden = LayerBrush != null && !LayerBrush.SupportsTransformation; Transform.IsHidden = LayerBrush != null && !LayerBrush.SupportsTransformation; - if (LayerBrush != null) + if (LayerBrush != null && Enabled) { - if (!LayerBrush.Enabled) - LayerBrush.InternalEnable(); - LayerBrush?.Update(0); + LayerBrush.InternalEnable(); + LayerBrush.Update(0); } OnLayerBrushUpdated(); diff --git a/src/Artemis.Core/Models/Profile/RenderProfileElement.cs b/src/Artemis.Core/Models/Profile/RenderProfileElement.cs index 02b75ce9b..9a87edc67 100644 --- a/src/Artemis.Core/Models/Profile/RenderProfileElement.cs +++ b/src/Artemis.Core/Models/Profile/RenderProfileElement.cs @@ -223,6 +223,14 @@ public abstract class RenderProfileElement : ProfileElement // Make sure the layer effect is tied to this element layerEffect.ProfileElement = this; + + // If the element is enabled, enable the effect before adding it + if (Enabled) + { + layerEffect.InternalEnable(); + layerEffect.Update(0); + } + _layerEffects.Add(layerEffect); // Update the order on the effects @@ -246,6 +254,9 @@ public abstract class RenderProfileElement : ProfileElement // Remove the effect from the layer _layerEffects.Remove(layerEffect); + // Disable the effect after removing it + layerEffect.InternalDisable(); + // Update the order on the remaining effects OrderEffects(); OnLayerEffectsUpdated();