You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rb Thomas.Sarkanen #preflight 619e6b3f0141b3c6da60ae1d #jira UE-127674 #ROBOMERGE-AUTHOR: lucas.dower #ROBOMERGE-SOURCE: CL 18285294 in //UE5/Release-5.0/... via CL 18285317 #ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469) [CL 18285320 by lucas dower in ue5-release-engine-test branch]
72 lines
2.3 KiB
C++
72 lines
2.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "PoseWatchManagerDefaultHierarchy.h"
|
|
#include "PoseWatchManagerFolderTreeItem.h"
|
|
#include "PoseWatchManagerPoseWatchTreeItem.h"
|
|
#include "PoseWatchManagerDefaultMode.h"
|
|
#include "EditorFolderUtils.h"
|
|
#include "Engine/PoseWatch.h"
|
|
#include "Animation/AnimBlueprint.h"
|
|
#include "SPoseWatchManager.h"
|
|
|
|
FPoseWatchManagerDefaultHierarchy::FPoseWatchManagerDefaultHierarchy(FPoseWatchManagerDefaultMode* InMode) : Mode(InMode) {}
|
|
|
|
FPoseWatchManagerTreeItemPtr FPoseWatchManagerDefaultHierarchy::FindParent(const IPoseWatchManagerTreeItem& Item, const TMap<FObjectKey, FPoseWatchManagerTreeItemPtr>& Items) const
|
|
{
|
|
UPoseWatchFolder* ParentFolder = nullptr;
|
|
if (const FPoseWatchManagerFolderTreeItem* FolderTreeItem = Item.CastTo<FPoseWatchManagerFolderTreeItem>())
|
|
{
|
|
ParentFolder = FolderTreeItem->PoseWatchFolder->GetParent();
|
|
|
|
}
|
|
else if (const FPoseWatchManagerPoseWatchTreeItem* PoseWatchTreeItem = Item.CastTo<FPoseWatchManagerPoseWatchTreeItem>())
|
|
{
|
|
ParentFolder = PoseWatchTreeItem->PoseWatch->GetParent();
|
|
}
|
|
|
|
if (ParentFolder)
|
|
{
|
|
const FPoseWatchManagerTreeItemPtr* ParentTreeItem = Items.Find(ParentFolder);
|
|
if (ParentTreeItem)
|
|
{
|
|
return *ParentTreeItem;
|
|
}
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
|
|
void FPoseWatchManagerDefaultHierarchy::CreateItems(TArray<FPoseWatchManagerTreeItemPtr>& OutItems) const
|
|
{
|
|
UAnimBlueprint* AnimBlueprint = Mode->PoseWatchManager->AnimBlueprint;
|
|
for (int32 Index = 0; Index < AnimBlueprint->PoseWatchFolders.Num(); ++Index)
|
|
{
|
|
TObjectPtr<UPoseWatchFolder>& PoseWatchFolder = AnimBlueprint->PoseWatchFolders[Index];
|
|
if (PoseWatchFolder)
|
|
{
|
|
FPoseWatchManagerTreeItemPtr PoseWatchFolderItem = Mode->PoseWatchManager->CreateItemFor<FPoseWatchManagerFolderTreeItem>(PoseWatchFolder);
|
|
OutItems.Add(PoseWatchFolderItem);
|
|
}
|
|
else
|
|
{
|
|
AnimBlueprint->PoseWatchFolders.RemoveAtSwap(Index);
|
|
}
|
|
}
|
|
for (int32 Index = 0; Index < AnimBlueprint->PoseWatches.Num(); ++Index)
|
|
{
|
|
TObjectPtr<UPoseWatch>& PoseWatch = AnimBlueprint->PoseWatches[Index];
|
|
if (PoseWatch)
|
|
{
|
|
if (!PoseWatch->GetShouldDeleteOnDeselect())
|
|
{
|
|
FPoseWatchManagerTreeItemPtr PoseWatchItem = Mode->PoseWatchManager->CreateItemFor<FPoseWatchManagerPoseWatchTreeItem>(PoseWatch);
|
|
OutItems.Add(PoseWatchItem);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
AnimBlueprint->PoseWatches.RemoveAtSwap(Index);
|
|
}
|
|
}
|
|
}
|