mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Profiles - Better implementation of Enable/Disable while in editor
This commit is contained in:
parent
bd75f1038e
commit
b8578a9cce
@ -180,7 +180,7 @@ namespace Artemis.Core
|
|||||||
throw new ObjectDisposedException("Folder");
|
throw new ObjectDisposedException("Folder");
|
||||||
|
|
||||||
// Ensure the folder is ready
|
// Ensure the folder is ready
|
||||||
if (!Enabled || Suspended || Path == null)
|
if (!Enabled || Path == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// No point rendering if all children are disabled
|
// No point rendering if all children are disabled
|
||||||
|
|||||||
@ -289,7 +289,7 @@ namespace Artemis.Core
|
|||||||
throw new ObjectDisposedException("Layer");
|
throw new ObjectDisposedException("Layer");
|
||||||
|
|
||||||
// Ensure the layer is ready
|
// Ensure the layer is ready
|
||||||
if (!Enabled || Suspended || Path == null || LayerShape?.Path == null || !General.PropertiesInitialized || !Transform.PropertiesInitialized)
|
if (!Enabled || Path == null || LayerShape?.Path == null || !General.PropertiesInitialized || !Transform.PropertiesInitialized)
|
||||||
return;
|
return;
|
||||||
// Ensure the brush is ready
|
// Ensure the brush is ready
|
||||||
if (LayerBrush == null || LayerBrush?.BaseProperties?.PropertiesInitialized == false)
|
if (LayerBrush == null || LayerBrush?.BaseProperties?.PropertiesInitialized == false)
|
||||||
|
|||||||
@ -124,22 +124,30 @@ namespace Artemis.UI.Shared.Services
|
|||||||
if (SelectedProfile == null || _doTick)
|
if (SelectedProfile == null || _doTick)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Stick to the main segment for any element that is not currently selected
|
TickProfileElement(SelectedProfile.GetRootFolder());
|
||||||
foreach (Folder folder in SelectedProfile.GetAllFolders())
|
|
||||||
{
|
|
||||||
folder.Enable();
|
|
||||||
folder.Timeline.Override(CurrentTime, folder.Timeline.PlayMode == TimelinePlayMode.Repeat);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (Layer layer in SelectedProfile.GetAllLayers())
|
|
||||||
{
|
|
||||||
layer.Enable();
|
|
||||||
layer.Timeline.Override(CurrentTime, (layer != SelectedProfileElement || layer.Timeline.Length < CurrentTime) && layer.Timeline.PlayMode == TimelinePlayMode.Repeat);
|
|
||||||
}
|
|
||||||
|
|
||||||
_doTick = true;
|
_doTick = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TickProfileElement(ProfileElement profileElement)
|
||||||
|
{
|
||||||
|
if (profileElement is not RenderProfileElement renderElement)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (renderElement.Suspended)
|
||||||
|
renderElement.Disable();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
renderElement.Enable();
|
||||||
|
if (renderElement is Folder)
|
||||||
|
renderElement.Timeline.Override(CurrentTime, renderElement.Timeline.PlayMode == TimelinePlayMode.Repeat);
|
||||||
|
else
|
||||||
|
renderElement.Timeline.Override(CurrentTime, (renderElement != SelectedProfileElement || renderElement.Timeline.Length < CurrentTime) && renderElement.Timeline.PlayMode == TimelinePlayMode.Repeat);
|
||||||
|
|
||||||
|
foreach (ProfileElement child in renderElement.Children)
|
||||||
|
TickProfileElement(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void SelectedProfileOnDeactivated(object? sender, EventArgs e)
|
private void SelectedProfileOnDeactivated(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
// Execute.PostToUIThread(() => ChangeSelectedProfile(null));
|
// Execute.PostToUIThread(() => ChangeSelectedProfile(null));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user