UX for updating redirectors

- Refactor AssetViewUtils::LoadAssetsIfNeeded to take settings struct and return enum code.
- Allow cancelling when loading redirectors or when loading referencers.
- Use AssetViewUtils::LoadAssetsIfNeeded in asset view context menu a well as folder tree to unify progress/cancellation for both

[CL 32159723 by robert millar in ue5-main branch]
This commit is contained in:
robert millar
2024-03-11 13:52:43 -04:00
parent b2a98f7e8a
commit 7385ad9ece
8 changed files with 284 additions and 145 deletions

View File

@@ -2,6 +2,7 @@
#include "AnimationModifiersModule.h"
#include "Algo/Copy.h"
#include "Animation/AnimSequence.h"
#include "AnimationModifier.h"
#include "AnimationModifierDetailCustomization.h"
@@ -166,20 +167,16 @@ void FAnimationModifiersModule::RegisterMenus()
return;
}
TArray<FString> AnimSequencePaths;
Algo::TransformIf(Context->SelectedAssets, AnimSequencePaths, [](const FAssetData& AssetData)
TArray<FAssetData> AnimSequenceAssets;
Algo::CopyIf(Context->SelectedAssets, AnimSequenceAssets, [](const FAssetData& AssetData)
{
return AssetData.AssetClassPath == UAnimSequence::StaticClass()->GetClassPathName();
},
[](const FAssetData& AssetData)
{
return AssetData.GetObjectPathString();
});
auto GetAnimSequences = [AnimSequencePaths](TArray<UAnimSequence*>& OutSequences)
auto GetAnimSequences = [AnimSequenceAssets](TArray<UAnimSequence*>& OutSequences)
{
TArray<UObject*> Objects;
AssetViewUtils::LoadAssetsIfNeeded(AnimSequencePaths, Objects);
AssetViewUtils::LoadAssetsIfNeeded(AnimSequenceAssets, Objects, AssetViewUtils::FLoadAssetsSettings{});
Algo::TransformIf(Objects, OutSequences,
[](const UObject* Object)