You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- When editing level instance, only show loaded/unloaded actors of this level - When editing level instance, don't prefix actor label with parent level instance(s) - Replaced import data layer menu option by drag and dropping level instance data layers into main world AWorldDataLayers - Removed menu option "Create Data Layer under <other> DataLayer" as it will never be allowed for DataLayerInstanceWithAsset since created without any valid DataLayerAsset. - Disabled changing visibility and editor loading of DataLayerInstances of editing level instance - Allow editing data layer of level instance when editing the level instance even when main world is not partitioned - Changed font from bold to bold+italic on DataLayerInstances containing actors part of editor selection - Removed suffix "- WorldDataLayers" on parent node of DataLayerInstances in the DataLayer Outliner - Colorize and append "(Current)" to WorldDataLayer of editing Level Instance in the DataLayer Outliner - Support Make Current on Level instance DataLayerInstances when editing level instance #rb patrick.enfedaque #jira UE-178410 #jira UE-177386 #preflight 63f8f0f19009dd70d7b87224 [CL 24441128 by richard malo in ue5-main branch]
81 lines
2.6 KiB
C++
81 lines
2.6 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();
|
|
const AWorldDataLayers* OuterWorldDataLayers = DataLayerInstancePtr ? DataLayerInstancePtr->GetOuterWorldDataLayers() : nullptr;
|
|
const bool bIsSubWorldDataLayers = OuterWorldDataLayers && OuterWorldDataLayers->IsSubWorldDataLayers();
|
|
return DataLayerInstancePtr && !DataLayerInstancePtr->IsReadOnly() && !bIsSubWorldDataLayers;
|
|
}
|
|
|
|
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 |