* The details panel must be enhanced to show Components as cards
* This new Card style should be applicable to any details panel
* Subobject editor had to be hidden upon selection of entity

Scene graph ~ fix the linker errors caused by having to initialize a reference from importing the SDetailsView code

#jira UE-193821, UE-192032
#rb Brooke.Hubert

[CL 27366356 by karen jirak in ue5-main branch]
This commit is contained in:
karen jirak
2023-08-24 22:07:53 -04:00
parent 20977ca45f
commit b30cf9cdbf
19 changed files with 713 additions and 30 deletions

View File

@@ -719,6 +719,8 @@ void SDetailsView::SetObjectArrayPrivate(const TArray<UObject*>& InObjects)
double StartTime = FPlatformTime::Seconds();
const TArray<FDetailsViewObjectRoot> Roots = ObjectFilter->FilterObjects(InObjects);
UpdateStyleKey();
PreSetObject(Roots.Num());
@@ -1471,4 +1473,40 @@ const FSlateBrush* SDetailsView::GetViewOptionsBadgeIcon() const
return bHasBadge ? FAppStyle::Get().GetBrush("Icons.BadgeModified") : nullptr;
}
bool SDetailsView::IsDefaultStyle() const
{
return StyleKeySP.IsValid() && *StyleKeySP.Get() == GetPrimaryDetailsViewStyleKey();
}
void SDetailsView::UpdateStyleKey()
{
const bool IsDefault = FDetailsViewStyleKeys::IsDefault(ObjectFilter->GetObjectsDetailsViewStyleKey());
if (IsDefault && DetailsViewArgs.StyleKey.IsValid())
{
StyleKeySP = DetailsViewArgs.StyleKey;
}
else if (!IsDefault)
{
FDetailsViewStyleKey Key = ObjectFilter->GetObjectsDetailsViewStyleKey();
StyleKeySP = MakeShared<FDetailsViewStyleKey>(Key);
}
else
{
// convert the const shared pointer value into a non-const the pointer can hold
StyleKeySP = MakeShared<FDetailsViewStyleKey>(GetPrimaryDetailsViewStyleKey());
}
}
FDetailsViewStyleKey& SDetailsView::GetStyleKey()
{
static FDetailsViewStyleKey PrimaryKey = GetPrimaryDetailsViewStyleKey();
return StyleKeySP.IsValid() ? *StyleKeySP.Get() : PrimaryKey;
}
const FDetailsViewStyleKey& SDetailsView::GetPrimaryDetailsViewStyleKey()
{
return FDetailsViewStyleKeys::Classic;
}
#undef LOCTEXT_NAMESPACE