Files
UnrealEngineUWP/Engine/Source/Runtime/MovieScene/Private/MovieSceneMetaData.cpp
max chen 6884d2cf30 Sequencer: Comments for shots/sections
Move CinematicShotSection::GetTooltipText to TSubSectionMixin

Added UMovieSceneMetaData for author, timestamp and notes

Moved ILevelSequenceMetaData to IMovieSceneMetaDataInterface

#jira UE-170207
#preflight 6446ccabf030f684d5eb1281
#rb andrew.rodham

[CL 25176306 by max chen in ue5-main branch]
2023-04-25 00:54:15 -04:00

97 lines
3.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MovieSceneMetaData.h"
#include "UObject/Package.h"
#include "Engine/Level.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(MovieSceneMetaData)
const FName UMovieSceneMetaData::AssetRegistryTag_Author = "MovieSceneMetaData_Author";
const FName UMovieSceneMetaData::AssetRegistryTag_Created = "MovieSceneMetaData_Created";
const FName UMovieSceneMetaData::AssetRegistryTag_Notes = "MovieSceneMetaData_Notes";
UMovieSceneMetaData::UMovieSceneMetaData(const FObjectInitializer& ObjInit)
: Super(ObjInit)
, Created(0)
{
}
UMovieSceneMetaData* UMovieSceneMetaData::GetConfigInstance()
{
static UMovieSceneMetaData* ConfigInstance = NewObject<UMovieSceneMetaData>(GetTransientPackage(), "DefaultMovieSceneMetaData", RF_MarkAsRootSet);
return ConfigInstance;
}
UMovieSceneMetaData* UMovieSceneMetaData::CreateFromDefaults(UObject* Outer, FName Name)
{
if (Name != NAME_None)
{
check(!FindObject<UObject>(Outer, *Name.ToString()));
}
return CastChecked<UMovieSceneMetaData>(StaticDuplicateObject(GetConfigInstance(), Outer, Name, RF_NoFlags));
}
bool UMovieSceneMetaData::IsEmpty() const
{
return Author.IsEmpty() && Created == FDateTime(0) && Notes.IsEmpty();
}
FString UMovieSceneMetaData::GetAuthor() const
{
return Author;
}
FDateTime UMovieSceneMetaData::GetCreated() const
{
return Created;
}
FString UMovieSceneMetaData::GetNotes() const
{
return Notes;
}
void UMovieSceneMetaData::SetAuthor(FString InAuthor)
{
Author = InAuthor;
}
void UMovieSceneMetaData::SetCreated(FDateTime InCreated)
{
Created = InCreated;
}
void UMovieSceneMetaData::SetNotes(FString InNotes)
{
Notes = InNotes;
}
void UMovieSceneMetaData::ExtendAssetRegistryTags(TArray<FAssetRegistryTag>& OutTags) const
{
OutTags.Emplace(AssetRegistryTag_Author, Author, FAssetRegistryTag::ETagType::TT_Alphabetical, FAssetRegistryTag::TD_None);
OutTags.Emplace(AssetRegistryTag_Created, Created.ToString(), FAssetRegistryTag::ETagType::TT_Chronological, FAssetRegistryTag::TD_Date | FAssetRegistryTag::TD_Time);
OutTags.Emplace(AssetRegistryTag_Notes, Notes, FAssetRegistryTag::ETagType::TT_Alphabetical, FAssetRegistryTag::TD_None);
}
#if WITH_EDITOR
void UMovieSceneMetaData::ExtendAssetRegistryTagMetaData(TMap<FName, FAssetRegistryTagMetadata>& OutMetadata) const
{
OutMetadata.Add(AssetRegistryTag_Author, FAssetRegistryTagMetadata()
.SetDisplayName(NSLOCTEXT("MovieSceneMetaData", "Author_Label", "Author"))
.SetTooltip(NSLOCTEXT("MovieSceneMetaData", "Author_Tip", "Author of this metadata"))
);
OutMetadata.Add(AssetRegistryTag_Created, FAssetRegistryTagMetadata()
.SetDisplayName(NSLOCTEXT("MovieSceneMetaData", "Created_Label", "Created"))
.SetTooltip(NSLOCTEXT("MovieSceneMetaData", "Created_Tip", "The date that this metadata was created"))
);
OutMetadata.Add(AssetRegistryTag_Notes, FAssetRegistryTagMetadata()
.SetDisplayName(NSLOCTEXT("MovieSceneMetaData", "Notes_Label", "Notes"))
.SetTooltip(NSLOCTEXT("MovieSceneMetaData", "Notes_Tip", "Notes for this metadata"))
);
}
#endif