Unshelved this merge from Stephan and then completed the merge with additional fixes and testing.
Hand fixed some WorldExp compile issues due to changes to OnPaint() signature.
#Integration
[CL 2245992 by Daniel Broder in Main branch]
Removed settings that locked use of BTs and BT editor features.
Module is now always loaded in editor.
reviewed by mieszko.zielinski
[CL 2228461 by Thomas Sarkanen in Main branch]
Correctly called through to parent implementation of FocusWindow().
Also prevent blackboards re-used by multiple BTs causing a mode switch when it is not needed.
TTP# 341365 - CRITICAL: Regression: EDITOR: Double clicking a Behavior Tree asset does not switch to its tab when open
reviewed by Andrew.Brown
[CL 2226798 by Thomas Sarkanen in Main branch]
Added new widget overlay system for graph panels, designed to allow more flexibilty than the current brush-only implementation. This requred a small refactor to avoid the assumption that all child widgets of an SNodePanel are SNodes (and because there is no usable RTTI present).
Added index widget overlay to BT graph nodes.
Added flag to parent nodes to allow us to change the appearance of child nodes when another child is hovered.
TTP# 339733 - Editor: Behaviour Tree: Add better execution order indicators
reviewed by Lukasz.Furman
[CL 2226658 by Thomas Sarkanen in Main branch]
Added new tooltip text using tooltip metadata from C++ node classes & BlueprintDescription text for BP node classes.
TTP# 339734 - Editor: Behaviour Tree: Add node tooltips
reviewed by Lukasz.Furman
[CL 2223207 by Thomas Sarkanen in Main branch]
Reverted workaround in FUIComandList.
Properly appended command lists in BT editor so keyboard shortcut routing and context menus all work together.
TTP# 340628 - BINARY: EDITOR: Unable to rename/delete blackboard keys with right click menu
[CL 2180008 by Thomas Sarkanen in Main branch]
Added the ability to check for command registration (as this can crash if a command is registed more than once) and re-used the asset editor toolkit command list when registering commands.
TTP# 340628 - BINARY: EDITOR: Unable to rename/delete blackboard keys with right click menu
[CL 2170051 by Thomas Sarkanen in Main branch]
Added factory for Blackboard assets so they can have their own entry & icon in the context menu.
Added toolbar shortcut to create a new Blackboard asset alongside the BT.
Fixed selecting new Blackboard sometimes not displaying in Blackboard mode.
Displayed root node properties when nothing is selected so blackboard assets can be chosen.
Also added missing icons for small toolbars
TTP# 339961 - [Editor][AI] There's no way to create a blackboard asset
TTP# 339731 - Editor: Behaviour Tree: Root node UI improvements
reviewed by Lukasz.Furman
[CL 2119281 by Thomas Sarkanen in Main branch]
Reworked connection logic in the behavior tree graph schema.
Found that while the code to check while dragging/hovering was switched when dropping interms of pin direction. This made denying connections in directed graphs (like BTs) problematic. Fixed this by just reversing the pin order on drop, tested in Blueprint & it seems to be working fine.
Also fixed creating graph cycles, which caused a crash.
TTP# 339732 - Editor: Behaviour Tree: Dragging link should replace existing, not be blocked
reviewed by Lukasz.Furman
[CL 2119237 by Thomas Sarkanen in Main branch]
Added new BlueprintCategory property to UBlueprints that propagates to class metadata on Blueprint compilation. This metadata is then used for C++ and Blueprint-based node classes when displayed in the behavior tree palette.
Also fixed blueprint decorators incorrectly displaying no icon.
TTP# 337865 - [EDITOR][BT editor] BT nodes could use a way to define custom categories
reviewed by Lukasz.Furman
[CL 2117859 by Thomas Sarkanen in Main branch]
Made sure node owner is up-to-date after undo. This fixes the outer of the node being incorrect post-undo. Nodes are renamed away non-transactionally when deleted and cleaned up, so the change to the outer gets ignored and is not restored normally. This ensures that it gets properly fixed up.
TTP# 339299 - UE4: BEHAVIORTREE: Node turns pink from Undoing a delete
reviewed by Lukasz.Furman
[CL 2117819 by Thomas Sarkanen in Main branch]
Made sure the details panel gets a refresh on delete.
TTP# 339846 - CRITICAL: DATA ASSET: CRASH: Occurs after deleting and modifying the name of a key
[CL 2117763 by Thomas Sarkanen in Main branch]
- Refactored IsPropertyVisible delegate to pass in a parent property pointer so complex visibility tests with struct parents can be performed
[CL 2115458 by Matt Kuhlenschmidt in Main branch]
From here: https://udn.unrealengine.com/questions/210807/static-code-analysis.html
#fix Redundant comparison of RootEdNode removed.
#fix Incorrect operator used to test FPropertyTable::SelectionUnit flags.
#fix Missing comparison used for testing FSlateColor::ColorUseRule
#codereview robert.manuszewski,matt.kuhlenschmidt,nick.atamas
[CL 2115454 by Steve Robb in Main branch]
Root nodes do not initialize their class data member (as they are never placed, only generated) which is to generate the default tooltip. Overriding the function to provide a useful tooltip for nodes.
TTP# 339280 - UE4: BEHAVIORTREE: Class not found tooltop still appears after saving
[CL 2113880 by Thomas Sarkanen in Main branch]
Added 3 new buttons/combo buttons used to create new Blueprint-based node classes. Buttons turn into combo buttons if there is more than one type of base class available.
New class Blueprints are created alongside the current behavior tree asset.
Fixed toolbar buttons having no visibility control if they had no bound command list.
TTP# 337671 - Behavior Tree Editor: Extend toolbar with ôcreate new taskö, ôcreate new decoratorö, ôcreate new serviceö options
reviewed by Andrew.Brown, Lukasz.Furman
[CL 2113857 by Thomas Sarkanen in Main branch]