Property Binding Extension: Make detail widget wrapping logic overridable.
Add GetNumChildren to DetailGroup.
Fix potential memory leak when changing a splash screen image.
Make splash screens extensible with custom text and images.
UnrealVersionSelector: Clarify error popup message when engine version change fails.
PropertyBagDetails: Drop ensure when no common bag struct exists for a multi-object selection.Such selections can be perfectly normal (e.g. two graph nodes with different bag types).
Make TInstancedStruct::InitializeAs<> return a reference to the initialized struct data to match the underlying FInstancedStruct::InitializeAs<>.
Fix crash when an editor mode wants to be visible in the toolbar without a command.
Provide an optional DefaultState to Notification Info.
Fix array did not expand its children on item add if its property editor was added to a parent property inside a customization.
GameplayTags: Tokenize search string so it's possible to find "Best.Tag.Ever" by looking for "best eve" and other whitespace-delimited combinations.
Zone Graph: Add an extra FZoneDrawAnnotator parameter to be able to customize zone graph draw debugs.
WorldPartition: Add Initial Runtime State to Data Layer Instance AR tags
Regex: Add Replace methods.
Auto-focus the currently selected actor in actor picker's dropdown, so it's much easier to select another actor which is nearby the current one (e.g. same LI, folder, etc).
Use middle ellipsis for object selector text clipping so that it's more consistent with other windows displaying actor names.
Add External Structure support for Detail Groups.
[Slate] Fix Status Bar tooltips appeared in another screen (or overlapped the status bar if there was no monitor to the right).
[P4VUtils] Add CommandDenyList config option.- Both commands and groups can be filtered out.
- Example: CommandDenyList=submitandvirtualize,robomergepreviewgraph,robomergetrackchange,UE Horde,openpreflight
[P4VUtils] Add JiraRegexHelp and JiraRegexPattern config options.- The regex used to identify jira tags is now exposed as 'JiraRegexPattern' in the P4VUtils.ini file and can be overriden for teams that use different formats.
- The help message displayed if no jira tags could be found can also but customized by setting 'JiraRegexHelp' in the P4VUtils.ini file.
Scene Outliner: Add an OnFullRefreshDone delegate so that other systems are able to determine when the outliner is done scanning.
Fix custom property builders were not re-initialized after an array element has been moved to another index in a property panel.A rebuild happened only in the middle of the operation (when an extra element is added to be used for a swap op), resulting in in array being displayed that has +1 element in it.
PropertyBag: Introduce UPropertyBagDetailsExtension through which it's possible to modify the behavior of PropertyBagDetails.This initial change allows users to specify a PropertyBagInstanceDataDetails to use for the property without having to create a whole new customization for the container.
Make asset selector's browse button have customizable tooltip & icon, and do not indicate that Alt can be used for actors by default, because this key is only handled for Content Browser assets.
PropertyBag: Expose bag mutating methods from the details panel.This lets systems to customize their property bags with extra features.
PropertyBag: Serialize PropertyFlags.It is used e.g. by EPropertyBagChildRowFeatures::AccessSpecifierButton.
Fix GetOptions UPARAM did not work for FStrings.Previously we only checked for the GetOptions meta in the case of non-multiline charset types (e.g. FNames), not for ones that support multi-line edit (e.g. FString).
Add option to be able to show serialized tagged members in CPU traces.This can help track down the properties that are expensive to serialize.
ConstStructView: Allow non-const types to appear as template arguments in the getters.
PropertyBag: Fix up Access Specifier toggle feature.- Now the eye is open when the property is public, closed otherwise.
- Clicking the eye will now result in a proper transaction.
PropertyBindings: Improve the performance of ResolvePaths modestly by eliminating some low-hanging fruits.
Add a CanItemChange event to array properties so that it's possible to conditionally back out of delete / duplicate / etc actions.
Expose some Property Binding Extension methods to make it easier to define custom menu actions in subclasses:- Make it possible to specify binding icons from stylesets other than AppStyle via GetPinTypeAndIconForProperty
- Move UpdateData to protected so that subclasses can also define actions that changes the binding
- Add a CustomizeWidgetArgs method with which it's possible to populate and override anything in FPropertyBindingWidgetArgs
PropertyBag: Fix Category Delete button was visible for Fixed bags too.
PropertyBag: When a property is overridden, update all its members, not just the type.
PropertyBinding: Let extensions allow editor-only bindings.
Asset Picker: Add a AssetFactoryContextName meta tag with which it's possible to provide a context name to be passed to the factory when a new asset is created via the picker.
Add GetActorFilter UPROPERTY meta support to object picker (mirroring GetAssetFilter).
PropertyBinding: Add ability for promotions to keep the source property's metadata.
PropertyBag: Add a feature to be able to duplicate a property.
PropertyBagEditor: Add option for specifying ChildRowFeatures (as bitflag) and ShowOnlyInnerProperties via property instance metadata.
Improve construction performance of SEditableTextBox & SPropertyEditorAsset.Takes rebuilding a specific detail panel from ~950ms -> ~650ms in a licensee project.
Avoid expensive ExportText calls when drawing array properties.Takes editor window draw in a licensee project from ~43ms to ~35ms.
Add a Copy Asset Registry Tags context menu action for CB assets
Expose RequestForceRefresh via the public DetailsView interface.
[Graph Editor] Fix a regression where the offset would be incorrectly applied in deprecation path to the size parameter
Instanced Struct Picker: Add AllowedStructs and DisallowedStructs arguments for when the picker is placed manually in a detail panel customization.
Instanced Struct Details: Make CustomizeChildren not depend on CustomizeHeader.This resolves the issue when the property is customized, so FDetailPropertyRow::OnItemNodeInitialized skips CustomizeHeader.
Move ActorDescContainerInitParams into a separate file
Add trace scope events to Actor Descriptor Container Instance initialization hot path
GameplayTag: Add a ShowOnlyLeafTag UPROPERTY meta tag, with which it's possible to show only the leaf name in the tag chip instead of the full tag path.
Octree2: Add a return value of FOctreeElementId2 to FindFirstElementWithBoundsTest
Add a GetNextKey property meta data with which a class can calculate the next valid key in a BP-exposed map
Add a Slate.DismissMenuStacksOnFocusLost debug cvar so that it's possible to use Widget Reflector on menu stacks
Functional Tests: Add support for custom categorization.
Fix Structure Details View did not restore the expansion state of customized properties
Fix fetching level info from Asset Registry could potentially result in a huge load.UActorDescContainer::Initialize during Data Validation in a licensee project: 109s -> 1ms.
Automation Driver: Add locators and waiting actions for user focus
Automation Tests: Add support for silently suppressing errors
Automation Driver: Make IApplicationElement public as it's returned by a public interface (IElementLocator)
Struct Picker: Do not show "None" item if it does not match the text search filter
Automation Driver: Add support for tagging delegate locators by a debug string, so that failing ones can be identified
Expose DockContentBrowserDrawer through the public Content Browser API
Add editor-only asset user data support for World Settings.
Fix crash when reusing Instanced Struct child properties between refreshes. Instead of this, let's just rebuild the child tree.
Instanced Struct: Fix crash on program teardown when an Instanced Struct is used as a static variable with a non-null underlying script struct.Might need further investigation, see: https://udn.unrealengine.com/s/question/0D5QP00000aIj3m0AC/finstancedstruct-calling-reset-with-a-garbage-scriptstruct
Instanced Struct: Handle expansion state properly.This change fixes the case when structs would always expand when the detail panel is loaded or refreshed, making it a nightmare to work with nested and list of instanced structs.
The new behavior:
- When a detail panel is opened, the previous expansion states are restored from config properly
- When a detail panel is refreshed, all properties keep their current expansion state
- When a new instanced struct is selected from the drop-down, we auto-expand the details below
Instanced Structs: Add ability to sort structs in a custom way inside pickers via a SortFunction UPROPERTY meta tag
GameplayTag Picker: If there is only one root node, open it by default (very useful for Categories meta tag)
Visual Logger: UX Improvements
Message Log: Improve UX.Draw a shadow if there are more elements that are currently visible.
Make the rows hoverable and clickable through the whole width of the panel.
Decrease padding to waste less space when the log listing is used as a docked tab.
Fix const-correctness of AActors in FActorInstanceGuid
Struct Utils: Add fast-path for getting data with base type in templated structs
Struct Picker: Support showing icons (via the meta tag ShowIcon=true)
Add a GetAllOpenEditors utility function to Asset Editor Subsystem
InstancedStruct: Add support for custom icons
Fix IWYU issue in SlateIconFinder
Property Editor: Fix custom rows did not respect centered vertical alignment when extension buttons had a larger height than the property widget
Mass: Allow replacing shared fragments when moving entity to another archetype
Property Editor: Add utility function to create a custom property editor button
Fix crash during editor teardown while a State Tree is open
Struct Utils: Make it possible to construct a TInstancedStruct from a ScriptStruct
Expose WorldSetting's Asset User Data to the editor
Export Smart Object Runtime
BehaviorTree: Fix right clicking on a decorator after dragging the graph did not open the context menu
Functional Tests: Add Test Finished BP event
FInstancedStructContainer: Add ExportText/ImportText support
FInstancedStructContainer: Fix crash caused by bad copypasta
Unify Struct Detail View header style with Object Detail View's.
Property Editor: Add support for StructProvider-driven Detail Views
Message Log: Fix clearing messages always resulted in the pages being shown
Property Editor: Fix Struct Detail View's scrollbar overlapped the Revert to Default buttons
Behavior Tree: Fix drag & dropping decorators was not handled if the drag happened fast
Face-lift Search Box icons
GameplayTags: Export editor slate classes
Fix "Multiple Values" feature was broken on some struct properties.CL 25214019 has introduced an optimization(?) which would not fill up OutAddresses in FStructurePropertyNode::GetReadAddressUncached if not all values match.
However, GetSingleReadAddress needs that array to be filled up to be able to differentiate between MultipleValues and Fail states.
FObjectPropertyNode::GetReadAddressUncached does not have such optimization, so this change also makes struct and object behavior more consistent (once again).
Add a "Drop-down Options" row in the Advanced section of blueprint variables.It fills up the GetOptions meta data of the property from either a list of matching function names (both native and BP), or a manually input text (to support global functions).
Possible future improvements:
- Function name and signature validation on BP compile
- Add option to create a new BP function with the right signature
- List all globally available functions
Add IsNumeric string view utilities under UE::String
List View: Add an OnItemsRebuilt delegate and a GetGeneratedChildAt method so that it's possible to do some post-processing on the generated list
Allow drag & dropping assets on a matching TScriptInterface picker
Property Customization Helpers: Add a utility function to create an edit button
StructUtils: Separate SInstancedStructPicker out of FInstancedStructDetails
PropertyEditor: Display the internal & display name of the property in the copy context action tooltip
UserDefinedStruct: Add support for meta data storage and add min/max clamp/UI value for numeric fields
TInstancedStruct: Add Serialize method
PropertyEditor: Add property handle layout overrides, so that systems can inject their own custom layout selection logic
Gameplay Tag Editor: Fix query window does not update the property after the detail panel has been updated.Also disable the window if the underlying properly completely disappears.
Fix links are not straight that come from blueprint event nodes
Fix warning during project file generation: "Overriding FPSemantics requires a private PCH. Disabling PCH usage for AutoRTFMTests"
Add an option to confirm closing the Unreal Editorthe pre flight is actually 662bc15be774eebeff65c9a2
Mass: Expose Initialization State through the base subsystemthe pre flight is actually 662bc12f264864c1652cdbe7
Automation Tests: Fix executing the done delegate in a latent action right away was ignored
MVVM: Fix warning "Failed to read file '../../../Engine/Plugins/Runtime/ModelViewViewModel/Content/Editor/Common/ButtonHoverHint.png'"
Auto-expand Instanced Struct properties
Struct Utils: Add Property Type Customization support for Instanced Structs
Blueprints: Fix dropdown for UPARAM's GetOptions was not hidden when a pin was connected
Behavior Tree: Show runtime node description on the node itself (instead of its tooltip)
Behavior Tree Debugger: Fix subtrees never switched back to inactive state.
Outliner: Pasting / Duplicating an actor now moves the new one to the "Current Folder" (if it's set) in World Partitioned levels too (follow up to CL 30537280).
Significance Manager: Don't look for multiple matches in cached object array, as its elements are unique
Scene Outliner: Add a key binding to scroll to the Current Folder
Add support for manual auto-complete commands in the Output Log console
Scene Outliner: Add an option to mark a folder as the Current Folder on double click instead of expanding it
Property Bindings: Add MaxDepth parameter to the widget so that systems can customize the maximum property depth to discover
Fix Select All Actor Children was not part of a transaction
Add a few commands to the console autocomplete list: `obj gc`, `obj dump`, `debug crash`, `debug rendercrash` and extended `obj refs`
Make AssetFails, AssetWarning and AssetPasses functions use const object parameters
Add an option to place actors under a subfolder instead of the root when breaking a Level Instance.If this option is enabled, the actors will be placed inside the folder the LI is inside of, under a subfolder with the name of the Level Instance, and also keeping their original folder structure.
So if i.e. the Level Instance Actor is called "Desert/LI_House2", and an actor inside is named "Lights/Light_Sun", the actor will be moved to "Desert/LI_House2/Lights/Light_Sun" in the outer level.
Pasting / Duplicating an actor now moves the new one to the "Current Folder" (if it's set)
Make keyboard shortcuts searchable in Editor Settings with the format: KeyBinding="F"
Add a viewport action to focus the selected actors in the outliner (to be used with AlwaysFrameSelection off)
AbilitySystemComponent: Add GetOwnedGameplayTags and GetBlockedAbilityTags that return a const-ref to avoid allocating and copying
[State Tree] Add an option to retain property values when the class of a node changes
Mark RemoveIf with nodiscard and fix up all erroneous usages
[Behavior Tree] Fix BT Composite Decorator had an erroneous tooltip ("Class not found, make sure it's saved!")
[Behavior Tree] Fix re-opening BT assets on project start-up opens up the BB instead
[Behavior Tree] Add support for node-specific error reporting
Fix BT decorator and service lists (and also some custom licensee graph implementations) put the first and second level category on the same level.A very long time ago CL 2411381 introduced a change to make the default Base Indent Level of all Graph Action Menus "1", basically meaning that both "0" and "1" indent levels would be placed at the root of the menu. Presumably they've needed it, because in BPs, categories on the left side are custom headers, and they didn't want the children (functions, variables, etc) to have an extra indent.
However, they've made this change globally, basically breaking Graph Action Menus that didn't have category customization and needed the first level to be indented under the root level.
Some systems have overcome this by defining a custom expander with a Base Indent Level of 0 - getting back the original, expected behavior. That was however just hiding the underlying issue.
This change reverts back the Base Indent Level to 0, and sets it to 1 instead only for those menus, which have a customized category header. This should fix all graph menus where the second category level was not indented (i.e. BT Action Menu and Decorator Context Menu).
Support setting actor picker with the currently selected actor in the level editor
Next pass on Behavior Tree extensibility:- Customizable node colors
- Inheritable task / decorator / service nodes
- More customizable text
- Add ability to hide services
- Const-correctness fixes
Outliner: Keep folders selected when changing / clearing search text
Export BehaviorTreeGraphNode_SubtreeTask
Add a Native Finished delegate for Movie Scene Sequence Player
Add an IsDebugCameraActive method to Cheat Manager
De-uglifying Class Viewer
Implement GetOptions for `UPARAM` and add it for `ByProfile` traces
Add support for writing JSONs with original property name casingsAvoids cases like:
- https://forums.unrealengine.com/t/fjsonobjectconverter-ustructtojsonobjectstring/347721/8
- https://forums.unrealengine.com/t/property-names-are-changed-by-ustructtojsonobjectstring/318179/2
Add "Browse to Asset" context action to the global asset picker
Don't warn about using legacy IO path for Nanite if the game is not packaged with pak files
Fix ensure when accessing the default material during water PSO collection from the game thread (following CL 24117541)
Don't show Level Instance properties on the World Settings
Fix ZOrder of AddToViewport not being taken into consideration
Add tokenized search support for Searchable Combo Box
Fixed const-correctness of `UK2Node_Event::FindEventSignatureFunction`
Fix GameplayTag Editor sometimes had a disabled OK button or a missing Clear Query button
Add two Smart Object Request Filter options to return claimed and/or disabled slots too
Add custom styleset support for K2Nodes
Add an overload to the FindRef method of TMap and TSortedMap that take a fallback default value
Add a Default Blackboard config option for Behavior Trees
Show node descriptions in Behavior Tree context menu
Expose some Behavior Tree Editor functionality to be inheritable and accessible from other modules.Also introduce some smaller BT Editor UX improvements.
Fix potential crash when `bFavorPureCastNodes` is enabled.`K2Node_Message` attempted to create an impure cast node when expanded, but `SetPurity(false)` had no effect in this case because inside it `IsNodePure` returned `false` even if the default cast purity was `Pure`. It resulted in the creation of a pure node, causing a crash because the Message node attempted to work with its (non-existent) exec pins.
UGS: Add option for a description badge to only match a single item
Add ability to add a widget inside the global window overlay
PR #12912: Fix missing externals when inheriting RenderTarget
Fix warning "Failed to find object 'Object None.None'" when deserializing FObjectAndNameAsStringProxyArchive.Should also speed up loading a buffer with a lot of NULL objects considerably (see PR #6875).
Add a Browse button to the Level Editor Toolbar
Make SyncBrowserToObjects use const arrays and add SyncBrowserToObject
Fix combo box has always triggered a value change event when it was opened.
Send a Toggle Editable event type instead of Value Set when the edit condition state of a property changes (i.e. the inline checkbox is toggled), so that we can listen to properties becoming (un)editable
Support calling world-dependent nodes (i.e. Async Load Asset) in Smart Object Behaviors
Auto-cast the result of User Widget Extension utilities in Blueprints
Fix for Common UI Actions not visible on the navigation bar inside paused menus in cooked games
PR #8913: Don't report warning when a file is locked in Plastic SCM
PR #6316: Persist translator comments when exporting PO
PR #6288: Revert invalid fix for UE-48885
PR #6176: Add a GetComponentsByInterface function for Actor
PR #5895: Disable Pass-by-Ref input modifier in macros
PR #5932: Add IsOpen function to Combo Box
PR #6016: Add interface requirement to the comment of ListViews
PR #5357: Separate abbreviations in Display Name
PR #5916: Clarify the tooltip of Persistent Local Variables in macros
PR #5917: Fix the description of Grid Panel
PR #5897: Export FRichImageRow for reusing
PR #5837: Display enabled state for impure compact nodes
PR #5556: Fix scope name of GetAllActorsWithInterface
PR #5821: Make BPs with compiling errors locatable
PR #5188: Make Blueprint function parameters case sensitive to renaming
PR #5535: Make PopUpErrorText non-focusable
PR #5513: Correct OnTextChanged tooltips
PR #5436: Add `GetSelectedIndex` to `ComboBox`
PR #5413: Make EQ Instance BP Wrapper const-correct
PR #5323: Preserve opened tab when closing another one
PR #5257: Make AddChildToWrapBox function name consistent
Add custom serialization support for GameplayTag Queries
Added TMap::Remove(Id), TMap::FindId(Key) and TMap::FindIdByHash.
Highlight success with warning in the test automation window
Actor Picker: Improve displayed name for actors that reside in Level Instances.
Actor Picker: Fix Browse button did not work when an LI actor was referenced by it.
Allow filtering of the gameplay tag chip display using DisplayShortTagNames metadata.[RN] Gameplay Tag and Tag Container meta data "DisplayShortTagNames" will remove the Categories filter from the beginning of the Tag chip in the details panel.
Tag chip ends in ellipsis when cut off.[RN] Gameplay Tag display ends in ellipsis when the display is cut off rather than overflowing.
Add a GetExpansionStructFunc UCLASS meta tag with which it's possible to use a member struct of a wrapper class as expansion root.
AIGraph: Fix selecting subnodes would result in the currently edited property value to be discarded instead of applied.For other graph nodes, mouse button down usually unfocuses, and mouse button up bring up the new detail panel - however, for these specific nodes, mouse down immediately brings up their detail panel, discarding any edited value.
AIGraphEditor: Provide the old/new GUID mappings of subnodes too in FixupPastedNodes.The pasted nodes already contain the pointers to the new subnodes, so this also makes the two sets more consistent.
DetailsView: Export SetRootExpansionStates through the public interface.
Expose AddChildRows via InstancedStructDataDetails so that it's easier to customize the way in which children are laid out.
Add DefaultRuntimeState to WorldDataLayersActorDesc.DataLayerInstanceDesc.
Asset Search Manager: Do not reload all packages after each AT.This halves AT runtime in editor for a large licensee project.
Provide a ForEachDataLayerInstance method in Data Layer Utils with which it's possible to iterate on the object / descriptor instances (whichever is available).
[Slate] Add a Slate.EnableTooltipForceFieldDraw console variable, with which it's possible to draw the effective tooltip force fields.
Fix for Gameplay Tag /Container customization using the HasMetaData("Categories") instead of the proper category metadata getter that includes metadata delegates.
Add accessors to the gameplay tag container UI so it can be opened by other UI elements