InternalOnlyPaths
InternalOnlyPaths
#Overview
name: InternalOnlyPaths
The value of this variable can be defined or overridden in .ini config files. 6
.ini config files referencing this setting variable.
It is referenced in 4
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of InternalOnlyPaths is to define a list of directories that should be considered as “Internal Only” within the Unreal Engine’s Class Viewer and Struct Viewer systems. This setting is used to manage the visibility of classes and structs in these viewers, helping to organize and control access to certain parts of the codebase.
This setting variable is primarily used by the Class Viewer and Struct Viewer subsystems within the Unreal Engine editor. Specifically, it’s referenced in the ClassViewer and StructViewer modules.
The value of this variable is set in project settings, as indicated by the UPROPERTY macro with the ‘config’ specifier. It can be edited through the Unreal Engine editor interface in the project settings under the “Class Visibility Management” and “Struct Visibility Management” categories.
InternalOnlyPaths interacts with other variables such as InternalOnlyClasses (for Class Viewer) and InternalOnlyStructs (for Struct Viewer). These variables work together to define what should be considered as internal-only content in the respective viewers.
Developers must be aware that setting directories as internal-only will affect the visibility of classes and structs in those directories when using the Class Viewer or Struct Viewer. This can impact workflows and access to certain parts of the codebase within the Unreal Engine editor.
Best practices when using this variable include:
- Carefully consider which directories should be marked as internal-only to maintain a balance between code organization and accessibility.
- Communicate changes to this setting with the development team, as it can affect their ability to access certain classes or structs through the viewers.
- Regularly review and update these paths as the project structure evolves to ensure they remain relevant and useful.
- Use this in conjunction with InternalOnlyClasses and InternalOnlyStructs for more granular control over visibility.
- Document the reasoning behind marking certain directories as internal-only to maintain clarity for the development team.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:3397, section: [/Script/ClassViewer.ClassViewerProjectSettings]
- INI Section:
/Script/ClassViewer.ClassViewerProjectSettings
- Raw value:
(Path="/Engine/VREditor")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3398, section: [/Script/ClassViewer.ClassViewerProjectSettings]
- INI Section:
/Script/ClassViewer.ClassViewerProjectSettings
- Raw value:
(Path="/Engine/Sequencer")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3399, section: [/Script/ClassViewer.ClassViewerProjectSettings]
- INI Section:
/Script/ClassViewer.ClassViewerProjectSettings
- Raw value:
(Path="/Engine/NotForLicensees")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3404, section: [/Script/ClassViewer.StructViewerProjectSettings]
- INI Section:
/Script/ClassViewer.StructViewerProjectSettings
- Raw value:
(Path="/Engine/VREditor")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3405, section: [/Script/ClassViewer.StructViewerProjectSettings]
- INI Section:
/Script/ClassViewer.StructViewerProjectSettings
- Raw value:
(Path="/Engine/Sequencer")
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3406, section: [/Script/ClassViewer.StructViewerProjectSettings]
- INI Section:
/Script/ClassViewer.StructViewerProjectSettings
- Raw value:
(Path="/Engine/NotForLicensees")
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/ClassViewer/Private/SClassViewer.cpp:2081
Scope (from outer to inner):
file
function void SClassViewer::GetInternalOnlyPaths
Source code excerpt:
return;
}
Paths = GetDefault<UClassViewerProjectSettings>()->InternalOnlyPaths;
}
FText SClassViewer::GetClassCountText() const
{
const int32 NumAssets = GetNumItems();
#Loc: <Workspace>/Engine/Source/Editor/ClassViewer/Public/ClassViewerProjectSettings.h:28
Scope (from outer to inner):
file
class class UClassViewerProjectSettings : public UObject
Source code excerpt:
/** The base directories to be considered Internal Only for the class picker.*/
UPROPERTY(EditAnywhere, config, Category = ClassVisibilityManagement, meta = (DisplayName = "List of directories to consider Internal Only.", ContentDir, LongPackageName))
TArray<FDirectoryPath> InternalOnlyPaths;
/** The base classes to be considered Internal Only for the class picker.*/
UPROPERTY(EditAnywhere, config, Category = ClassVisibilityManagement, meta = (MetaClass = "/Script/CoreUObject.Object", DisplayName = "List of base classes to consider Internal Only.", AllowAbstract = "true", ShowTreeView, HideViewOptions))
TArray<FSoftClassPath> InternalOnlyClasses;
#endif
};
#Loc: <Workspace>/Engine/Source/Editor/StructViewer/Private/SStructViewer.cpp:1568
Scope (from outer to inner):
file
function void SStructViewer::GetInternalOnlyPaths
Source code excerpt:
return;
}
Paths = GetDefault<UStructViewerProjectSettings>()->InternalOnlyPaths;
}
FText SStructViewer::GetStructCountText() const
{
const int32 NumSelectedStructs = GetSelectedItems().Num();
if (NumSelectedStructs == 0)
#Loc: <Workspace>/Engine/Source/Editor/StructViewer/Public/StructViewerProjectSettings.h:27
Scope (from outer to inner):
file
class class UStructViewerProjectSettings : public UObject
Source code excerpt:
/** The base directories to be considered Internal Only for the struct picker.*/
UPROPERTY(EditAnywhere, config, Category = StructVisibilityManagement, meta = (DisplayName = "List of directories to consider Internal Only.", ContentDir, LongPackageName))
TArray<FDirectoryPath> InternalOnlyPaths;
/** The base classes to be considered Internal Only for the struct picker.*/
UPROPERTY(EditAnywhere, config, Category = StructVisibilityManagement, meta = (DisplayName = "List of base structs to consider Internal Only.", ShowTreeView, HideViewOptions))
TArray<TSoftObjectPtr<const UScriptStruct>> InternalOnlyStructs;
#endif
};