Files
UnrealEngine/Engine/Source/Editor/PropertyEditor/Private/DetailsViewConfig.h
2025-05-18 13:04:45 +08:00

91 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Map.h"
#include "Containers/Set.h"
#include "EditorConfigBase.h"
#include "UObject/NameTypes.h"
#include "UObject/UObjectGlobals.h"
#include "DetailsViewConfig.generated.h"
class UObject;
template <typename T> struct TObjectPtr;
USTRUCT()
struct FDetailsSectionSelection
{
GENERATED_BODY()
public:
UPROPERTY()
TSet<FName> SectionNames;
};
USTRUCT()
struct FDetailsViewConfig
{
GENERATED_BODY()
public:
/** If we should show the favorites category. */
UPROPERTY()
bool bShowFavoritesCategory { false };
/** When enabled, the Advanced Details will always auto expand. */
UPROPERTY()
bool bShowAllAdvanced { false };
/** When Playing or Simulating, shows all properties (even non-visible and non-editable properties), if the object belongs to a simulating world. This is useful for debugging. */
UPROPERTY()
bool bShowHiddenPropertiesWhilePlaying { false };
/** Show all category children if the category matches the filter. */
UPROPERTY()
bool bShowAllChildrenIfCategoryMatches { false };
/** Show only keyable properties. */
UPROPERTY()
bool bShowOnlyKeyable { false };
/** Show only animated properties. */
UPROPERTY()
bool bShowOnlyAnimated { false };
/** Show only modified properties. */
UPROPERTY()
bool bShowOnlyModified { false };
/** Show sections. */
UPROPERTY()
bool bShowSections { true };
/** Width of the value column in the details view (0.0-1.0). */
UPROPERTY()
float ValueColumnWidth { 0 };
/** A map of class name to a set of selected sections for that class. */
UPROPERTY()
TMap<FName, FDetailsSectionSelection> SelectedSections;
};
UCLASS(EditorConfig="DetailsView")
class UDetailsConfig : public UEditorConfigBase
{
GENERATED_BODY()
public:
UPROPERTY(meta=(EditorConfig))
TMap<FName, FDetailsViewConfig> Views;
static void Initialize();
static UDetailsConfig* Get();
private:
static TObjectPtr<UDetailsConfig> Instance;
};