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:

  1. 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.
  2. If you decide to disable this feature, ensure that you provide a default layout that works well for your project’s needs.
  3. Document any changes to this setting, as it can significantly impact the user experience for developers working on the project.
  4. 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]

#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;