// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "Widgets/Views/STreeView.h" class UPoseSearchFeatureChannel; namespace UE::PoseSearch { class FDatabaseViewModel; typedef TSharedPtr FChannelItemPtr; typedef STreeView SChannelItemsTreeView; struct FSearchIndex; class SDatabaseDataDetails : public SCompoundWidget { public: SLATE_BEGIN_ARGS( SDatabaseDataDetails ) {} SLATE_END_ARGS() void Construct(const FArguments& Args, TSharedRef InEditorViewModel); void Reconstruct(int32 MaxPreviewActors = 15); private: static void RebuildChannelItemsTreeRecursively(TArray& ChannelItems, TConstArrayView> Channels, const FSearchIndex& SearchIndex); static void RebuildChannelItemsStats(TArray& ChannelItems); static void TrackExpandedItems(const TArray& ChannelItems, TMap& ExpandedItems); static void SetExpandedItems(TArray& ChannelItems, const TMap& ExpandedItems, SChannelItemsTreeView* ChannelItemsTreeView); TSharedPtr ChannelItemsTreeView; TArray ChannelItems; TWeakPtr EditorViewModel; }; } // namespace UE::PoseSearch