Files
UnrealEngineUWP/Engine/Source/Editor/DataLayerEditor/Private/DataLayer/DataLayerTreeItem.cpp
richard malo 9a4289de40 - Changed Data Layer Visibility to be transient
- Added Data Layer bIsInitiallyVisible persistent flag to control Data Layer visibility flag initial value when loading map
- Fixed bug when changing map, Data Layer visibility was not properly reflected on actors
- Better Data Layer properties categorisation (Runtime vs Editor)
- Changing Data Layer IsDynamicallyLoaded flag is now only possible in its Details view
- Allow IsDynamicallyLoadedInEditor for any type of Data Layer
#rb jeanfrancois.dube, patrick.enfedaque

#ROBOMERGE-SOURCE: CL 15728575 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)

[CL 15728630 by richard malo in ue5-main branch]
2021-03-17 15:17:35 -04:00

47 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "DataLayerTreeItem.h"
#include "DataLayer/DataLayerEditorSubsystem.h"
#include "ISceneOutlinerTreeItem.h"
#include "SceneOutlinerStandaloneTypes.h"
#include "SDataLayerTreeLabel.h"
#include "Editor.h"
#define LOCTEXT_NAMESPACE "DataLayer"
const FSceneOutlinerTreeItemType FDataLayerTreeItem::Type(&ISceneOutlinerTreeItem::Type);
FDataLayerTreeItem::FDataLayerTreeItem(UDataLayer* InDataLayer)
: ISceneOutlinerTreeItem(Type)
, DataLayer(InDataLayer)
, ID(InDataLayer)
{
Flags.bIsExpanded = false;
}
FString FDataLayerTreeItem::GetDisplayString() const
{
const UDataLayer* DataLayerPtr = DataLayer.Get();
return DataLayerPtr ? DataLayerPtr->GetDataLayerLabel().ToString() : LOCTEXT("DataLayerForMissingDataLayer", "(Deleted Data Layer)").ToString();
}
bool FDataLayerTreeItem::GetVisibility() const
{
const UDataLayer* DataLayerPtr = DataLayer.Get();
return DataLayerPtr && DataLayerPtr->IsVisible();
}
TSharedRef<SWidget> FDataLayerTreeItem::GenerateLabelWidget(ISceneOutliner& Outliner, const STableRow<FSceneOutlinerTreeItemPtr>& InRow)
{
return SNew(SDataLayerTreeLabel, *this, Outliner, InRow);
}
void FDataLayerTreeItem::OnVisibilityChanged(const bool bNewVisibility)
{
if (UDataLayer* DataLayerPtr = DataLayer.Get())
{
UDataLayerEditorSubsystem::Get()->SetDataLayerVisibility(DataLayerPtr, bNewVisibility);
}
}
#undef LOCTEXT_NAMESPACE