You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#preflight 6355d4940313c24974b2107b #rb none [CL 22783162 by henrik karlsson in ue5-main branch]
79 lines
2.4 KiB
C++
79 lines
2.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "DataLayerTreeItem.h"
|
|
|
|
#include "DataLayer/DataLayerEditorSubsystem.h"
|
|
#include "ISceneOutlinerTreeItem.h"
|
|
#include "Internationalization/Internationalization.h"
|
|
#include "Internationalization/Text.h"
|
|
#include "SDataLayerTreeLabel.h"
|
|
#include "SceneOutlinerStandaloneTypes.h"
|
|
#include "Widgets/DeclarativeSyntaxSupport.h"
|
|
#include "Widgets/Views/SListView.h"
|
|
|
|
class ISceneOutliner;
|
|
class SWidget;
|
|
template <typename ItemType> class STableRow;
|
|
|
|
#define LOCTEXT_NAMESPACE "DataLayer"
|
|
|
|
const FSceneOutlinerTreeItemType FDataLayerTreeItem::Type(&ISceneOutlinerTreeItem::Type);
|
|
|
|
FDataLayerTreeItem::FDataLayerTreeItem(UDataLayerInstance* InDataLayerInstance)
|
|
: ISceneOutlinerTreeItem(Type)
|
|
, DataLayerInstance(InDataLayerInstance)
|
|
, ID(InDataLayerInstance)
|
|
, bIsHighlighedtIfSelected(false)
|
|
{
|
|
Flags.bIsExpanded = false;
|
|
}
|
|
|
|
FString FDataLayerTreeItem::GetDisplayString() const
|
|
{
|
|
const UDataLayerInstance* DataLayerInstancePtr = DataLayerInstance.Get();
|
|
return DataLayerInstancePtr ? DataLayerInstancePtr->GetDataLayerShortName() : LOCTEXT("DataLayerForMissingDataLayer", "(Deleted Data Layer)").ToString();
|
|
}
|
|
|
|
bool FDataLayerTreeItem::GetVisibility() const
|
|
{
|
|
const UDataLayerInstance* DataLayerInstancePtr = DataLayerInstance.Get();
|
|
return DataLayerInstancePtr && DataLayerInstancePtr->IsVisible();
|
|
}
|
|
|
|
bool FDataLayerTreeItem::ShouldShowVisibilityState() const
|
|
{
|
|
const UDataLayerInstance* DataLayerInstancePtr = DataLayerInstance.Get();
|
|
return DataLayerInstancePtr && !DataLayerInstancePtr->IsReadOnly();
|
|
}
|
|
|
|
bool FDataLayerTreeItem::CanInteract() const
|
|
{
|
|
return true;
|
|
}
|
|
|
|
TSharedRef<SWidget> FDataLayerTreeItem::GenerateLabelWidget(ISceneOutliner& Outliner, const STableRow<FSceneOutlinerTreeItemPtr>& InRow)
|
|
{
|
|
return SNew(SDataLayerTreeLabel, *this, Outliner, InRow);
|
|
}
|
|
|
|
void FDataLayerTreeItem::OnVisibilityChanged(const bool bNewVisibility)
|
|
{
|
|
if (UDataLayerInstance* DataLayerInstancePtr = DataLayerInstance.Get())
|
|
{
|
|
UDataLayerEditorSubsystem::Get()->SetDataLayerVisibility(DataLayerInstancePtr, bNewVisibility);
|
|
}
|
|
}
|
|
|
|
bool FDataLayerTreeItem::ShouldBeHighlighted() const
|
|
{
|
|
if (bIsHighlighedtIfSelected)
|
|
{
|
|
if (UDataLayerInstance* DataLayerInstancePtr = DataLayerInstance.Get())
|
|
{
|
|
return UDataLayerEditorSubsystem::Get()->DoesDataLayerContainSelectedActors(DataLayerInstancePtr);
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE |