bEnableUserEditorLayoutManagement
bEnableUserEditorLayoutManagement
#Overview
name: bEnableUserEditorLayoutManagement
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 6
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bEnableUserEditorLayoutManagement is to control whether users can manage and customize their editor layouts in Unreal Engine 5. This setting variable is primarily used for the user interface and editor customization features.
Based on the callsites, this setting variable is mainly used in the MainFrame module of Unreal Engine 5, specifically in the LayoutsMenu and MainMenu components. These components are responsible for managing the editor’s user interface and layout options.
The value of this variable is set in the UEditorStyleSettings class, which is part of the UnrealEd module. By default, it is set to true in the constructor of UEditorStyleSettings.
This variable interacts with various menu creation functions, such as MakeLoadLayoutsMenu, MakeSaveLayoutsMenu, and MakeRemoveLayoutsMenu. These functions use the value of bEnableUserEditorLayoutManagement to determine whether to display certain layout management options in the editor’s menus.
Developers must be aware that this variable directly affects the user’s ability to save, load, and remove custom editor layouts. When set to false, these options will not be available in the editor’s interface.
Best practices when using this variable include:
- Consider the target audience of your project. If you want to provide a consistent editor experience across all team members, you might want to disable this feature.
- If you decide to disable this feature, ensure that you provide a default layout that works well for your project’s needs.
- Document any changes to this setting, as it can significantly impact the user experience for developers working on the project.
- If you’re developing plugins or extensions for the Unreal Editor, check the value of this variable before adding custom layout management features to ensure consistency with the engine’s behavior.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:80, section: [/Script/UnrealEd.EditorStyleSettings]
- INI Section:
/Script/UnrealEd.EditorStyleSettings
- Raw value:
True
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/MainFrame/Private/Menus/LayoutsMenu.cpp:742
Scope (from outer to inner):
file
function void FLayoutsMenuLoad::MakeLoadLayoutsMenu
Source code excerpt:
// Additional sections
if (GetDefault<UEditorStyleSettings>()->bEnableUserEditorLayoutManagement)
{
FToolMenuSection& Section = InToolMenu->FindOrAddSection("UserDefaultLayouts");
// Separator
if (FLayoutsMenu::IsThereUserLayouts())
{
#Loc: <Workspace>/Engine/Source/Editor/MainFrame/Private/Menus/LayoutsMenu.cpp:935
Scope (from outer to inner):
file
function void FLayoutsMenuSave::MakeSaveLayoutsMenu
Source code excerpt:
void FLayoutsMenuSave::MakeSaveLayoutsMenu(UToolMenu* InToolMenu)
{
if (GetDefault<UEditorStyleSettings>()->bEnableUserEditorLayoutManagement)
{
// MakeOverrideLayoutsMenu
FPrivateLayoutsMenu::MakeXLayoutsMenuInternal(InToolMenu, FPrivateLayoutsMenu::ELayoutsMenu::Save);
// Additional sections
{
#Loc: <Workspace>/Engine/Source/Editor/MainFrame/Private/Menus/LayoutsMenu.cpp:1040
Scope (from outer to inner):
file
function void FLayoutsMenuRemove::MakeRemoveLayoutsMenu
Source code excerpt:
void FLayoutsMenuRemove::MakeRemoveLayoutsMenu(UToolMenu* InToolMenu)
{
if (GetDefault<UEditorStyleSettings>()->bEnableUserEditorLayoutManagement)
{
// MakeRemoveLayoutsMenu
FPrivateLayoutsMenu::MakeXLayoutsMenuInternal(InToolMenu, FPrivateLayoutsMenu::ELayoutsMenu::Remove);
// Additional sections
{
#Loc: <Workspace>/Engine/Source/Editor/MainFrame/Private/Menus/MainMenu.cpp:342
Scope (from outer to inner):
file
function void FMainMenu::RegisterWindowMenu
Source code excerpt:
// Save and Remove Layout
// Opposite to "Load Layout", Save and Remove are dynamic, i.e., they can be enabled/removed depending on the value of
// the variable GetDefault<UEditorStyleSettings>()->bEnableUserEditorLayoutManagement
Section.AddDynamicEntry("OverrideAndRemoveLayout", FNewToolMenuSectionDelegate::CreateLambda([](FToolMenuSection& InSection)
{
if (GetDefault<UEditorStyleSettings>()->bEnableUserEditorLayoutManagement)
{
// Save Layout
InSection.AddEntry(FToolMenuEntry::InitSubMenu(
"OverrideLayout",
NSLOCTEXT("LayoutMenu", "OverrideLayoutsSubMenu", "Save Layout"),
NSLOCTEXT("LayoutMenu", "OverrideLayoutsSubMenu_ToolTip", "Save your current layout configuration on disk"),
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Settings/EditorStyleSettings.h:59
Scope (from outer to inner):
file
class class UEditorStyleSettings : public UObject
Source code excerpt:
*/
UPROPERTY(EditAnywhere, config, Category = UserInterface)
bool bEnableUserEditorLayoutManagement;
/** Applies a color vision deficiency filter to the entire editor */
UPROPERTY(EditAnywhere, config, Category = "Accessibility")
EColorVisionDeficiency ColorVisionDeficiencyPreviewType;
UPROPERTY(EditAnywhere, config, Category = "Accessibility", meta=(ClampMin=0, ClampMax=10))
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Settings/EditorStyleClasses.cpp:34
Scope (from outer to inner):
file
function UEditorStyleSettings::UEditorStyleSettings
Source code excerpt:
, ViewportToolOverlayColor(FLinearColor::White)
{
bEnableUserEditorLayoutManagement = true;
SelectionColor = FLinearColor(0.828f, 0.364f, 0.003f);
EditorWindowBackgroundColor = FLinearColor::White;
AssetEditorOpenLocation = EAssetEditorOpenLocation::Default;