EditorCommands
EditorCommands
#Overview
name: EditorCommands
The value of this variable can be defined or overridden in .ini config files. 9
.ini config files referencing this setting variable.
It is referenced in 17
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of EditorCommands is to store and manage a collection of editor-specific commands in Unreal Engine. This variable is primarily used in the context of the Unreal Editor and various plugin editors to define, register, and execute custom commands that can be bound to key combinations or invoked through other means within the editor interface.
EditorCommands is utilized across several Unreal Engine subsystems and plugins, including:
- Avalanche Editor
- Chaos Caching Editor
- Chaos Flesh Editor
- Chaos Solver Editor
- Chaos Vehicles Editor
- Field System Editor
- Geometry Collection Editor
- Niagara Editor
- Niagara Sim Caching Editor
- Blueprint Editor
- Unreal Editor core
The value of this variable is typically set within the respective editor or plugin modules during their initialization or startup phase. For example, in the GeometryCollectionEditor, commands are added to the EditorCommands array in the StartupModule function.
EditorCommands often interacts with other variables and systems such as:
- Command lists (FUICommandList)
- Console commands (IConsoleCommand)
- Key bindings (UUnrealEdKeyBindings)
- Asset type actions
Developers should be aware of the following when using EditorCommands:
- Commands should be registered during the module’s startup and unregistered during shutdown.
- Each command should have a unique name to avoid conflicts.
- Commands may need to be bound to specific UI elements or key combinations to be accessible to users.
Best practices for using EditorCommands include:
- Organize commands logically by functionality or category.
- Provide clear, descriptive names and tooltips for each command.
- Ensure proper cleanup of registered commands when the module or plugin is unloaded.
- Use appropriate scoping and access control to prevent unintended modifications to the command list.
- Consider performance implications when adding a large number of commands.
By following these guidelines, developers can effectively extend the Unreal Editor’s functionality with custom commands tailored to their specific needs.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditor.ini:229, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_ChangeInterpModeAUTO", Description="CurveEditor_ChangeInterpModeAUTO_Desc", ExecCommand="CurveEditor ChangeInterpModeAUTO")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:230, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_ChangeInterpModeUSER", Description="CurveEditor_ChangeInterpModeUSER_Desc", ExecCommand="CurveEditor ChangeInterpModeUSER")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:231, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_ChangeInterpModeBREAK", Description="CurveEditor_ChangeInterpModeBREAK_Desc", ExecCommand="CurveEditor ChangeInterpModeBREAK")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:232, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_ChangeInterpModeLINEAR", Description="CurveEditor_ChangeInterpModeLINEAR_Desc", ExecCommand="CurveEditor ChangeInterpModeLINEAR")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:233, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_ChangeInterpModeCONSTANT", Description="CurveEditor_ChangeInterpModeCONSTANT_Desc", ExecCommand="CurveEditor ChangeInterpModeCONSTANT")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:234, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_FitViewHorizontally", Description="CurveEditor_FitViewHorizontally_Desc", ExecCommand="CurveEditor FitViewHorizontally")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:235, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_FitViewVertically", Description="CurveEditor_FitViewVertically_Desc", ExecCommand="CurveEditor FitViewVertically")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:236, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_FitViewToAll", Description="CurveEditor_FitViewToAll_Desc", ExecCommand="CurveEditor FitViewToAll")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:237, section: [/Script/UnrealEd.UnrealEdOptions]
- INI Section:
/Script/UnrealEd.UnrealEdOptions
- Raw value:
(Parent="CurveEditor", CommandName="CurveEditor_FitViewToSelected", Description="CurveEditor_FitViewToSelected_Desc", ExecCommand="CurveEditor FitViewToSelected")
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Experimental/Avalanche/Source/AvalancheEditor/Private/InteractiveTools/AvaInteractiveToolsExtension.cpp:79
Scope (from outer to inner):
file
function void FAvaInteractiveToolsExtension::RegisterCategories
Source code excerpt:
using namespace UE::AvaEditor::Private;
const FAvaEditorCommands& EditorCommands = FAvaEditorCommands::Get();
InModule->RegisterCategory(StaticMeshCategory, EditorCommands.StaticMeshToolsCategory);
InModule->RegisterCategory(CamerasCategory, EditorCommands.CameraToolsCategory);
InModule->RegisterCategory(LightsCategory, EditorCommands.LightsToolsCategory);
}
void FAvaInteractiveToolsExtension::RegisterTools(IAvalancheInteractiveToolsModule* InModule)
{
using namespace UE::AvaEditor::Private;
const FAvaEditorCommands& EditorCommands = FAvaEditorCommands::Get();
InModule->RegisterTool(IAvalancheInteractiveToolsModule::CategoryNameActor, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<AMediaPlate>(
IAvalancheInteractiveToolsModule::CategoryNameActor, EditorCommands.MediaPlateTool, FString(TEXT("Media Plate Tool")),
7000));
int32 Priority = 0;
InModule->RegisterTool(StaticMeshCategory, UAvaInteractiveToolsStaticMeshActorToolBuilder::CreateToolParameters(StaticMeshCategory,
EditorCommands.CubeTool, FString(TEXT("Static Mesh Cube Tool")), Priority += 1000,
TEXT("/Script/Engine.StaticMesh'/Engine/BasicShapes/Cube.Cube'")));
InModule->RegisterTool(StaticMeshCategory, UAvaInteractiveToolsStaticMeshActorToolBuilder::CreateToolParameters(StaticMeshCategory,
EditorCommands.SphereTool, FString(TEXT("Static Mesh Sphere Tool")), Priority += 1000,
TEXT("/Script/Engine.StaticMesh'/Engine/BasicShapes/Sphere.Sphere'")));
InModule->RegisterTool(StaticMeshCategory, UAvaInteractiveToolsStaticMeshActorToolBuilder::CreateToolParameters(StaticMeshCategory,
EditorCommands.CylinderTool, FString(TEXT("Static Mesh Cylinder Tool")), Priority += 1000,
TEXT("/Script/Engine.StaticMesh'/Engine/BasicShapes/Cylinder.Cylinder'")));
InModule->RegisterTool(StaticMeshCategory, UAvaInteractiveToolsStaticMeshActorToolBuilder::CreateToolParameters(StaticMeshCategory,
EditorCommands.ConeTool, FString(TEXT("Static Mesh Cone Tool")), Priority += 1000,
TEXT("/Script/Engine.StaticMesh'/Engine/BasicShapes/Cone.Cone'")));
InModule->RegisterTool(StaticMeshCategory, UAvaInteractiveToolsStaticMeshActorToolBuilder::CreateToolParameters(StaticMeshCategory,
EditorCommands.PlaneTool, FString(TEXT("Static Mesh Plane Tool")), Priority += 1000,
TEXT("/Script/Engine.StaticMesh'/Engine/BasicShapes/Plane.Plane'")));
Priority = 0;
InModule->RegisterTool(CamerasCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ACameraActor>(
CamerasCategory, EditorCommands.CameraTool, FString(TEXT("Standard Camera Tool")),
Priority += 1000,
UAvaCameraActorTool::StaticClass()));
InModule->RegisterTool(CamerasCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ACineCameraActor>(
CamerasCategory, EditorCommands.CineCameraTool, FString(TEXT("Cine Camera Tool")),
Priority += 1000,
UAvaCameraActorTool::StaticClass()));
InModule->RegisterTool(CamerasCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ACameraRig_Crane>(
CamerasCategory, EditorCommands.CameraRigCraneTool, FString(TEXT("Camera Rig Crane Tool")),
Priority += 1000));
InModule->RegisterTool(CamerasCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ACameraRig_Rail>(
CamerasCategory, EditorCommands.CameraRigRailTool, FString(TEXT("Camera Rig Rail Tool")),
Priority += 1000));
InModule->RegisterTool(CamerasCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ACameraShakeSourceActor>(
CamerasCategory, EditorCommands.CameraShakeSourceTool, FString(TEXT("Camera Shake Source Tool")),
Priority += 1000));
InModule->RegisterTool(CamerasCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<AAvaPostProcessVolume>(
CamerasCategory, EditorCommands.AvaPostProcessVolumeTool, FString(TEXT("Motion Design Post Process Volume Tool")),
Priority += 1000));
Priority = 0;
InModule->RegisterTool(LightsCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<APointLight>(
LightsCategory, EditorCommands.PointLightTool, FString(TEXT("Point Light Tool")),
Priority += 1000));
InModule->RegisterTool(LightsCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ADirectionalLight>(
LightsCategory, EditorCommands.DirectionalLightTool, FString(TEXT("Directional Light Tool")),
Priority += 1000));
InModule->RegisterTool(LightsCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ASpotLight>(
LightsCategory, EditorCommands.SpotLightTool, FString(TEXT("Spot Light Tool")),
Priority += 1000));
InModule->RegisterTool(LightsCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ARectLight>(
LightsCategory, EditorCommands.RectLightTool, FString(TEXT("Rect Light Tool")),
Priority += 1000));
InModule->RegisterTool(LightsCategory, UAvaInteractiveToolsActorToolBuilder::CreateToolParameters<ASkyLight>(
LightsCategory, EditorCommands.SkyLightTool, FString(TEXT("Sky Light Tool")),
Priority += 1000));
}
#Loc: <Workspace>/Engine/Plugins/Experimental/Avalanche/Source/AvalancheEditor/Private/OperatorStack/AvaOperatorStackExtension.cpp:89
Scope (from outer to inner):
file
function void FAvaOperatorStackExtension::BindCommands
Source code excerpt:
InCommandList->Append(AnimatorCommands);
const FAvaEditorCommands& EditorCommands = FAvaEditorCommands::Get();
AnimatorCommands->MapAction(EditorCommands.DisableAnimators
, FExecuteAction::CreateSP(this, &FAvaOperatorStackExtension::EnableAnimators, false));
AnimatorCommands->MapAction(EditorCommands.EnableAnimators
, FExecuteAction::CreateSP(this, &FAvaOperatorStackExtension::EnableAnimators, true));
}
void FAvaOperatorStackExtension::OnSelectionChanged(UObject* InSelection)
{
const USelection* Selection = Cast<USelection>(InSelection);
#Loc: <Workspace>/Engine/Plugins/Experimental/ChaosCaching/Source/ChaosCachingEditor/Public/Chaos/ChaosCachingEditorPlugin.h:21
Scope (from outer to inner):
file
class class IChaosCachingEditorPlugin : public IModuleInterface
Source code excerpt:
class IChaosCachingEditorPlugin : public IModuleInterface
{
TArray<IConsoleObject*> EditorCommands;
public:
virtual void StartupModule();
virtual void ShutdownModule();
/**
#Loc: <Workspace>/Engine/Plugins/Experimental/ChaosFlesh/Source/ChaosFleshEditor/Private/ChaosFlesh/ChaosFleshEditorPlugin.cpp:25
Scope (from outer to inner):
file
function void IChaosFleshEditorPlugin::StartupModule
Source code excerpt:
if (GIsEditor && !IsRunningCommandlet())
{
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("ChaosDeformable.ImportFile"),
TEXT("Creates a FleshAsset from the input file"),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FChaosFleshCommands::ImportFile),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("ChaosDeformable.FindQualifyingTetrahedra"),
TEXT("From the selected actor's flesh components, prints indices of tetrahedra matching our search criteria. "
"Use arg 'MinVol <value>' to specify a minimum tet volume; "
"use arg 'MaxAR <value>' to specify a maximum aspect ratio; "
"use 'XCoordGT <value>', 'YCoordGT <value>', 'ZCoordGT <value>' to select tets with all vertices greater than the specified value; "
"use 'XCoordLT <value>', 'YCoordLT <value>', 'ZCoordLT <value>' to select tets with all vertices less than the specified value; "
#Loc: <Workspace>/Engine/Plugins/Experimental/ChaosFlesh/Source/ChaosFleshEditor/Public/ChaosFlesh/ChaosFleshEditorPlugin.h:53
Scope (from outer to inner):
file
class class IChaosFleshEditorPlugin : public IModuleInterface
Source code excerpt:
private:
TArray<IConsoleObject*> EditorCommands;
// Asset actions for new asset types
FAssetTypeActions_ChaosDeformableSolver* ChaosDeformableSolverAssetActions;
// Styleset for flesh tool brushes/fonts etc.
TSharedPtr<FSlateStyleSet> StyleSet;
#Loc: <Workspace>/Engine/Plugins/Experimental/ChaosSolverPlugin/Source/ChaosSolverEditor/Public/Chaos/ChaosSolverEditorPlugin.h:12
Scope (from outer to inner):
file
class class IChaosSolverEditorPlugin : public IModuleInterface
Source code excerpt:
class IChaosSolverEditorPlugin : public IModuleInterface
{
TArray<IConsoleObject*> EditorCommands;
public:
virtual void StartupModule();
virtual void ShutdownModule();
#Loc: <Workspace>/Engine/Plugins/Experimental/ChaosVehiclesPlugin/Source/ChaosVehiclesEditor/Public/ChaosVehiclesEditorPlugin.h:13
Scope (from outer to inner):
file
class class IChaosVehiclesEditorPlugin : public IModuleInterface
Source code excerpt:
class IChaosVehiclesEditorPlugin : public IModuleInterface
{
TArray<IConsoleObject*> EditorCommands;
public:
virtual void StartupModule();
virtual void ShutdownModule();
#Loc: <Workspace>/Engine/Plugins/Experimental/FieldSystemPlugin/Source/FieldSyStemEditor/Public/Field/FieldSystemEditorModule.h:12
Scope (from outer to inner):
file
class class IFieldSystemEditorModule : public IModuleInterface
Source code excerpt:
class FIELDSYSTEMEDITOR_API IFieldSystemEditorModule : public IModuleInterface
{
TArray<IConsoleObject*> EditorCommands;
public:
virtual void StartupModule();
virtual void ShutdownModule();
#Loc: <Workspace>/Engine/Plugins/Experimental/GeometryCollectionPlugin/Source/GeometryCollectionEditor/Private/GeometryCollection/GeometryCollectionEditorPlugin.cpp:53
Scope (from outer to inner):
file
function void IGeometryCollectionEditorPlugin::StartupModule
Source code excerpt:
if (GIsEditor && !IsRunningCommandlet())
{
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.CreateFromSelectedActors"),
TEXT("Creates a GeometryCollection from the selected Actors that contain Skeletal and Statict Mesh Components"),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionConversion::CreateFromSelectedActorsCommand),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.CreateFromSelectedAssets"),
TEXT("Creates a GeometryCollection from the selected Skeletal Mesh and Static Mesh Assets"),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionConversion::CreateFromSelectedAssetsCommand),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.ToString"),
TEXT("Dump the contents of the collection to the log file. WARNING: The collection can be very large."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::ToString),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.ClusterAlongYZPlane"),
TEXT("Debuigging command to split the unclustered geometry collection along the YZPlane."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::SplitAcrossYZPlane),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.DeleteGeometry"),
TEXT("Delete geometry by transform name."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::DeleteGeometry),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.SelectAllGeometry"),
TEXT("Select all geometry in hierarchy."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::SelectAllGeometry),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.SelectNone"),
TEXT("Deselect all geometry in hierarchy."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::SelectNone),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.SelectLessThenVolume"),
TEXT("Select all geometry with a volume less than specified."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::SelectLessThenVolume),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.SelectInverseGeometry"),
TEXT("Deselect inverse of currently selected geometry in hierarchy."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::SelectInverseGeometry),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.WriteToHeaderFile"),
TEXT("Dump the contents of the collection to a header file. WARNING: The collection can be very large."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::WriteToHeaderFile),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.WriteToOBJFile"),
TEXT("Dump the contents of the collection to an OBJ file. WARNING: The collection can be very large."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::WriteToOBJFile),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.BuildProximityDatabase"),
TEXT("Build the Proximity information in the GeometryGroup for the selected collection."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::BuildProximityDatabase),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.DeleteCoincidentVertices"),
TEXT("Delete coincident vertices on a GeometryCollection. WARNING: The collection can be very large."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::DeleteCoincidentVertices),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.DeleteZeroAreaFaces"),
TEXT("Delete zero area faces on a GeometryCollection. WARNING: The collection can be very large."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::DeleteZeroAreaFaces),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.DeleteHiddenFaces"),
TEXT("Delete hidden faces on a GeometryCollection. WARNING: The collection can be very large."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::DeleteHiddenFaces),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.DeleteStaleVertices"),
TEXT("Delete stale vertices on a GeometryCollection. WARNING: The collection can be very large."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::DeleteStaleVertices),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.PrintStatistics"),
TEXT("Prints statistics of the contents of the collection."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::PrintStatistics),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.PrintDetailedStatistics"),
TEXT("Prints detailed statistics of the contents of the collection."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::PrintDetailedStatistics),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.PrintDetailedStatisticsSummary"),
TEXT("Prints detailed statistics of the contents of the selected collection(s)."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::PrintDetailedStatisticsSummary),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.SetupNestedBoneAsset"),
TEXT("Converts the selected GeometryCollectionAsset into a test asset."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::SetupNestedBoneAsset),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.SetupTwoClusteredCubesAsset"),
TEXT("Addes two clustered cubes to the selected actor."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::SetupTwoClusteredCubesAsset),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.Heal"),
TEXT("Tries to fill holes in go."),
FConsoleCommandWithWorldDelegate::CreateStatic(&FGeometryCollectionCommands::HealGeometry),
ECVF_Default
));
EditorCommands.Add(IConsoleManager::Get().RegisterConsoleCommand(
TEXT("GeometryCollection.SetNamedAttributeValues"),
TEXT("Command to set attributes within a named group."),
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(&FGeometryCollectionCommands::SetNamedAttributeValues),
ECVF_Default
));
}
#Loc: <Workspace>/Engine/Plugins/Experimental/GeometryCollectionPlugin/Source/GeometryCollectionEditor/Public/GeometryCollection/GeometryCollectionEditorPlugin.h:57
Scope (from outer to inner):
file
class class IGeometryCollectionEditorPlugin : public IModuleInterface
Source code excerpt:
private:
TArray<IConsoleObject*> EditorCommands;
// Asset actions for new asset types
FAssetTypeActions_GeometryCollectionCache* GeometryCollectionCacheAssetActions;
FGeometryCollectionAssetBroker* AssetBroker;
// Modular features
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/Toolkits/NiagaraParameterCollectionToolkit.h:65
Scope (from outer to inner):
file
class class FNiagaraParameterCollectionToolkit : public FAssetEditorToolkit, public FGCObject
Source code excerpt:
/** The command list for this editor */
TSharedPtr<FUICommandList> EditorCommands;
/** Main tab */
static const FName MainTabID;
};
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/Toolkits/NiagaraSystemToolkit.h:246
Scope (from outer to inner):
file
class class FNiagaraSystemToolkit : public FWorkflowCentricApplication, public FGCObject, public FEditorUndoClient
Source code excerpt:
/** The command list for this editor */
TSharedPtr<FUICommandList> EditorCommands;
/** Display for script stats on selected platforms */
TSharedPtr<FNiagaraScriptStatsViewModel> ScriptStats;
/** Baker preview */
TSharedPtr<FNiagaraBakerViewModel> BakerViewModel;
#Loc: <Workspace>/Engine/Plugins/FX/NiagaraSimCaching/Source/NiagaraSimCachingEditor/Public/Niagara/NiagaraSimCachingEditorPlugin.h:21
Scope (from outer to inner):
file
class class INiagaraSimCachingEditorPlugin : public IModuleInterface
Source code excerpt:
class INiagaraSimCachingEditorPlugin : public IModuleInterface
{
TArray<IConsoleObject*> EditorCommands;
public:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
/**
#Loc: <Workspace>/Engine/Source/Editor/Kismet/Private/SBlueprintEditorToolbar.cpp:324
Scope (from outer to inner):
file
function static void BlueprintEditorToolbarImpl::MakeCompileDeveloperSubMenu
Source code excerpt:
{
FToolMenuSection& Section = InMenu->AddSection("Section");
const FBlueprintEditorCommands& EditorCommands = FBlueprintEditorCommands::Get();
Section.AddMenuEntry(EditorCommands.SaveIntermediateBuildProducts);
Section.AddMenuEntry(EditorCommands.ShowActionMenuItemSignatures);
}
//////////////////////////////////////////////////////////////////////////
// FBlueprintEditorToolbar
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Preferences/UnrealEdOptions.h:93
Scope (from outer to inner):
file
class class UUnrealEdOptions : public UObject
Source code excerpt:
/** Commands that can be bound to in the editor. */
UPROPERTY(config)
TArray<struct FEditorCommand> EditorCommands;
/** Pointer to the key bindings object that actually stores key bindings for the editor. */
UPROPERTY()
TObjectPtr<class UUnrealEdKeyBindings> EditorKeyBindings;
/** If true, the list of classes in the class picker dialog will be expanded */
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/UnrealEdEngine.cpp:1265
Scope (from outer to inner):
file
function void UUnrealEdOptions::GenerateCommandMap
Source code excerpt:
{
CommandMap.Empty();
for(int32 CmdIdx=0; CmdIdx<EditorCommands.Num(); CmdIdx++)
{
FEditorCommand &Cmd = EditorCommands[CmdIdx];
CommandMap.Add(Cmd.CommandName, CmdIdx);
}
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/UnrealEdEngine.cpp:1284
Scope (from outer to inner):
file
function FString UUnrealEdOptions::GetExecCommand
Source code excerpt:
int32* CommandIdx = CommandMap.Find(Binding.CommandName);
if(CommandIdx && EditorCommands.IsValidIndex(*CommandIdx))
{
FEditorCommand &Cmd = EditorCommands[*CommandIdx];
if(Cmd.Parent == EditorSet)
{
// See if this key binding matches the key combination passed in.
if(bAltDown == Binding.bAltDown && bCtrlDown == Binding.bCtrlDown && bShiftDown == Binding.bShiftDown && Key == Binding.Key)
{
int32* EditorCommandIdx = CommandMap.Find(Binding.CommandName);
if(EditorCommandIdx && EditorCommands.IsValidIndex(*EditorCommandIdx))
{
FEditorCommand &EditorCommand = EditorCommands[*EditorCommandIdx];
Result = EditorCommand.ExecCommand;
}
break;
}
}
}